美文网首页笨办法学Pythonpython
《笨办法学Python》笔记37-----你的第一个网站

《笨办法学Python》笔记37-----你的第一个网站

作者: 大猫黄 | 来源:发表于2016-07-24 14:17 被阅读309次

    你的第一个网站

    先安装一个框架

    $ sudo pip install lpthw.web

    所谓框架通常是指让某件事情做起来更容易的软件包。

    项目骨架

    .
    ├── bin
    │   ── app.py
    │  
    ├── docs
    ├── gothonweb
    │   └── __init__.py
    ├── templates
    │   └── index.html
    └── tests
        └── __init__.py
    
    5 directories, 4 files
    

    web应用

    import web
    
    urls = ('/','Index')
    
    app = web.application(urls,globals())
    
    class Index(object):
        def GET(self):
            greeting = "Hello World"
            return greeting
    
    if __name__ == '__main__':
        app.run()
    
    

    运行程序后,打开链接,页面上会显示Hello World

    模板

    创建一个templates/index.html文件

    $def with (greeting)
    <html>
        <head>
            <title>Gothons Of Planet Percal #25</title>
        </head>
    <body>
    $if greeting:
        I just wanted to say <em style="color: green; font-size:2em;">$greeting</em>.
    $else:
        <em>Hello</em>, world!
    </body>
    </html>
    
    

    在程序中调用模板

    import web
    
    urls = ('/','Index')
    
    app = web.application(urls,globals())
    
    render = web.template.render('templates/')
    
    class Index(object):
        def GET(self):
            greeting = "Hello World"
            return render.index(greeting = greeting)
    
    if __name__ == '__main__':
        app.run()
    
    

    但运行后,提示

    AttributeError: No template named index

    Google后发现是模板路径问题

    看上面的骨架目录,app.py位于bin目录下,index模板位于与bin平行的templates目录下

    所以有两种方法解决这个问题

    • 将templates目录复制到app.py所在的目录
    • 将语句中的相对路径render = web.template.render('templates/')改为绝对路径render = web.template.render('/home/damao/Documents/gothonweb/templates/')

    完成后,即可正常打开经过模板渲染的网页

    I just wanted to say Hello World.

    相关文章

      网友评论

      • 得一切从简:最后一个路径的问题,只用 cd 到 gothonweb,然后 python bin/app.py,浏览器便可以正常显示

      本文标题:《笨办法学Python》笔记37-----你的第一个网站

      本文链接:https://www.haomeiwen.com/subject/nlzwjttx.html