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&#39;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 &gt; 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: &quot;This page should display a picture and show a light blue=
 background.&quot;</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&quot; 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--