Bare bones page has config
Jack Eisenbach <[email protected]> Thu, 19 Dec 2019 07:00:35 -0800 (PST)
| Newsgroups | gmane.comp.python.cherrypy |
|---|---|
| Message-ID | <[email protected]> |
------=_Part_340_246115871.1576767635504 Content-Type: multipart/alternative; boundary="----=_Part_341_1720142044.1576767635505" ------=_Part_341_1720142044.1576767635505 Content-Type: text/plain; charset="UTF-8" I've created a barebonessite There are 4 files: The main page called bb.py, it has a config file called bb.config. In the static/images directory, the file traffic.jpg and in the static/css directory, style.css resides. I launch it using > python bb.py. The I browse to: 127.0.0.1:8080/test/ I wanted to just display the traffic.jpg image and print some text and show a light Blue background. The image does not get displayed nor is the background light Blue. I do see the text: "This page should display a picture and show a light blue background." I have tried to change config settings but cannot get it working. Thanks in advance to someone that can assist. Jack Eisenbach -- You received this message because you are subscribed to the Google Groups "cherrypy-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to cherrypy-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected] To view this discussion on the web visit https://groups.google.com/d/msgid/cherrypy-users/f89e2bfb-2957-4fb7-86be-1a8178003655%40googlegroups.com. ------=_Part_341_1720142044.1576767635505 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">I've created a barebonessite There are 4 files: The ma= in page called bb.py, it has a config file called bb.config. In the static/= images directory, the file traffic.jpg and in the static/css directory, sty= le.css resides. I launch it using > python bb.py. The I browse to:=C2=A0= 127.0.0.1:8080/test/<div><br></div><div>I wanted to just display the traff= ic.jpg image and print some text and show a light Blue background.</div><di= v>The image does not get displayed nor is the background light Blue. I do s= ee the text: "This page should display a picture and show a light blue= background."</div><div>I have tried to change config settings but can= not get it working. Thanks in advance to someone that can assist.</div><div= ><br></div><div>Jack Eisenbach</div></div> <p></p> -- <br /> You received this message because you are subscribed to the Google Groups &= quot;cherrypy-users" group.<br /> To unsubscribe from this group and stop receiving emails from it, send an e= mail to <a href=3D"mailto:cherrypy-users+unsubscribe-/[email protected]">cher= rypy-users+unsubscribe-/[email protected]</a>.<br /> To view this discussion on the web visit <a href=3D"https://groups.google.c= om/d/msgid/cherrypy-users/f89e2bfb-2957-4fb7-86be-1a8178003655%40googlegrou= ps.com?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.com/d/= msgid/cherrypy-users/f89e2bfb-2957-4fb7-86be-1a8178003655%40googlegroups.co= m</a>.<br /> ------=_Part_341_1720142044.1576767635505-- ------=_Part_340_246115871.1576767635504 Content-Type: text/x-python; charset=US-ASCII; name=bb.PY Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=bb.PY X-Attachment-Id: e2934bd6-5c7b-463d-919a-563e09dbc448 Content-ID: <e2934bd6-5c7b-463d-919a-563e09dbc448> import random import string import logging import logging.config import cherrypy import os.path current_dir = os.path.dirname(os.path.abspath(__file__)) class BB(object): @cherrypy.expose def test(self): print "current_dir:", current_dir print "in test handler" html = self.get_head() #html = '<!DOCTYPE html>' #html = '<head>' #html = '' print "html:", html html += '<body>' #html += self.get_header_links('home') html += '<p><img src="/test/traffic.jpg/" alt="I-5 Traffic" style="float:left; width:125px; height:250px;border:10;">' '''= html += '<p><img src="static/images/traffic.jpg/" alt="I-5 Traffic" style="width:250px; height:125px;border:0;">' ''' html += """ This page should display a picture and also have a light Blue background.""" return html @cherrypy.expose def about(self): html = self.get_head() #html += '<body style="background-color: lightblue;">' html += self.get_header_links('about') html += '<p><img src="static/images/traffic.jpg/" alt="I-5 Traffic" style="float:left; width:125px; height:250px;border:0;">' html += '<p><img src="static/images/traffic.jpg/" alt="I-5 Traffic" style="width:250px; height:125px;border:0;">' return html @cherrypy.expose def create_a_category(self): html = '<form method="get" action="create_category"><br>' html += '\nTitle:<input type="text" value="10" name="title" />br' html += '\nDescription:<input type="textbox" value="200" name="description" />br' html += '\nURL:<input type="textbox" value="100" name="URL as the souce for info" />br' html += '\nYour email address:<input type="text" value="10" name="email address" />br' html += ' <button type="submit">Submit idea!</button>' html += '</form>' return html @cherrypy.expose def issue(self): html = self.get_head() html += '<body>' html += '<form method="get" action="issue_handler">' html += '<style>' html += 'body {' html += ' background-color: #eee;' html += '}' html += 'body{' html += ' background-color: lightblue;' html += ' color: red;' html += ' <title><h1style="text-align:center;">BB data issue</h1></title>' html += '}' html += '<style>' html += ' background-color: lightblue;' html += ' color: red;' html += ' </style>' html += self.get_header_links('issue') html += '<h1>US Info Now</h1>' html += ' </body>' html += ' </html>' html += """ We try hard to insure the data info objects are as accurate as possible and we have a ongoing testing schedule to check the info we output. There might be an occasional issue with the data we outpt. If you noticed some BB info was not correct, please let us know the details and we will investigate the problem. Kindly fill out the form below with the details: </p><table style="border: 1px solid black;"> """ return html """ The function below handles the issue form processing of the above issue function.""" @cherrypy.expose def issue_handler(self, Firstname = "John", lastname= 'Doe', email='[email protected]'): print "inside register_handler routine" cherrypy.log("inside register_handler function") html = self.get_head() print "Firstname:", firstname print "Lastname:", lastname print "Email:", email @cherrypy.expose def contact(self): html = self.get_head() html += self.get_header_links('contact') html += """ We can be reached during the hours from 9AM to 10PM Pacific Standard Time: 760-270-6937 email: jackeisenbach-Re5JQEeQqe9fmgfxC/sS/[email protected] Prefer text over voice and email over voice mail. Thank you! """ return html @cherrypy.expose def register(self): html = self.get_head() html += self.get_header_links('register') html += """ Registering will allow you to get a one-time free 2 month subscription to real-time sports scores.<p> html += </p><table style="border: 1px solid black;"> <trstyle="border: 1px solid black;"> <trstyle="border: 1px solid black;"><tr><td align="left"><th align="left">Firstname:</th></td><td><input name="firstname" type="text" value="John"></td></tr> <trstyle="border: 1px solid black;"><tr><td align="left"><th align="left">Lastname:</th></td><td><input name="lastname" type="text" value="Doe"></td></tr> <trstyle="border: 1px solid black;"><tr><td align="left"><th align="left">Email:</th></td><td><input name="email" type="text" value="[email protected]"></td></tr> <trstyle="border: 1px solid black;"><tr><td></td><td><th align="center"><button type="button">Submit!</button></td><td></td></tr> <trstyle="border: 1px solid black;"><tr><td align="left"><th align="left">Password:</th></td><td><input name="password" type="text" value=""></td></tr> </form> </table> </body></html>""" return html """ The function below handles the register form processing of the above register function.""" @cherrypy.expose def register_handler(self, Firstname = "John", lastname= 'Doe', email='[email protected]'): print "inside register_handler routine" cherrypy.log("inside register_handler function") html = self.get_head() html += self.get_header_links('register') print "Firstname:", firstname print "Lastname:", lastname print "Email:", email print "Password:", password @cherrypy.expose def contact(self): html = self.get_head() html += self.get_header_links('contact') html += """ We can be reached during the hours from 9AM to 10PM Pacific Standard Time: 760-270-6937 email: [email protected] """ return html @cherrypy.expose def login(self): html = self.get_head() html += self.get_header_links('login') html += """ We can be reached during the hours from 9AM to 10PM Pacific Standard Time: 760-270-6937 email: [email protected] """ return html def get_head(self, ): html = '<!DOCTYPE html>' html += '<head>' html += self.get_title() html += self.get_meta() html += '</head>' html += self.get_css() print "get_head adds: %s" %( html) print "get_head adds:", html return html def get_title(self, ): html = '<title><h1 style="text-align:center;">US Bare Bones</h1></title>' print "get_title adds:", html return html def get_css(self, ): html = '<link rel="stylesheet" href="/static/css/style.css"' print "get_css adds:", html return html def get_meta(self, ): html = '<meta charset="UTF-8">' html += '<meta name="description" content="IN main page">' html += '<meta name="keywords" content="HTML,CSS,XML,JavaScript">' html += '<meta name="author" content="Jack Eisenbach">' print "get_meta adds:", html return html def get_header_links(self, page): """ Show all the links to other pages here.Don't show a link to the current page we are on. The passed in 'page' parameter is the link we should not show. """ print "page:", page print "In get_header_links()" header_list = ['home', 'about', 'login', 'register', 'create a category', 'report an issue', 'subscriptions', 'contact'] print "header_list:", header_list header_list.remove( page.lower()) print "header_list:", header_list html = '' for header in header_list : #if header == page.title(): # pass # print "not " + header #else: if header == 'home': html += '<p><a href="http:/">'+ header + '/</a></p>' else: print "header:", header html += '<p><a href="' + header + '/">'+ header + '</a></p>' html += ' <p>' html += '<a href=' + header + '/>'+ header + '</a></p>' #html += '<td>br</td></tr>' cherrypy.log( "html:", html ) print "get_header_links adds: %s" %( html) return html def get_trailer(self, page): return html if __name__ == '__main__': path = os.path.abspath(os.path.dirname(__file__)) print "path:", path cherrypy.quickstart(BB(), '/', 'bb.config') ------=_Part_340_246115871.1576767635504 Content-Type: application/octet-stream; name=bb.config Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=bb.config X-Attachment-Id: 185bea11-5627-472c-9bd4-35193fd5400e Content-ID: <185bea11-5627-472c-9bd4-35193fd5400e> [/] tools.sessions.on: True path = 'C:\\workspace\\CP' [/static] tools.staticdir.on : True tools.staticdir.root : "C:\\workspace\\CP\\" tools.staticdir.dir : "/workspace/CP/static" tools.staticfile.on = True tools.staticfile.filename = 'C:\workspace\CP\static\css\style.css' [/static/css] tools.staticdir.on : True tools.staticdir.root : "/workspace/CP/" tools.staticdir.dir : "workspace/CP/static/css/" ------=_Part_340_246115871.1576767635504 Content-Type: text/css; charset=ISO-8859-1; name=style.css Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=style.css X-Attachment-Id: 669b2528-234b-4e6b-84b0-25fb9b4dccea Content-ID: <669b2528-234b-4e6b-84b0-25fb9b4dccea> body { =00style=3D"background-color: lightblue;" <h1 style=3D"color:blue;">This is a heading</h1> text-align: center; } fieldset { display: inline-block; padding: 0.2em 0.3em; border: 2px solid yellow; } th, td { padding: 4px; } ------=_Part_340_246115871.1576767635504 Content-Type: image/jpeg; name=traffic.jpg Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=traffic.jpg X-Attachment-Id: ba9114f5-74fe-445f-a041-fc0b2d0a1b1c Content-ID: <ba9114f5-74fe-445f-a041-fc0b2d0a1b1c> /9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACAAMADASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwBjXZM9 0xUFllUgEHBw1VtNs7C01D+0m+0I6OWwzjblsg5GPeiFT9u1DIUgSgqPffVrSNHOs3sumvcCEyOC ZSm7aBk9O/SudK2iJu0xuravb37Lp1yrtayupMsZGVIIIPSnx2VzpUn2LS4i9m8gdnkAdslRyOOm BWtqPw4sE0qW4ttbkka1jeWRWt8BgPT0/WshL65spZomUPCNgTceVG0U7OMbFxlzP3iprKm7WC2k gyiujfJ8rK3zDsOeGP6UhvjosUthZwqY4XZv3/zZ7dauTTS2VmZUmjMzSDlWyV9j6Gq+ssJI4CmR N/EFHLZ61iq12oNGsqPKua5pxXn71LlmQq8gUFVHOc/pUdpe30DTNfoqTFgIxgfdA6/yrMs9sa2u 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 U+oH/9k= ------=_Part_340_246115871.1576767635504--