zoukankan      html  css  js  c++  java
  • Python——Web.py詳解

      ubuntu安裝Web.py

    1 sudo pip install web.py

      測試代碼:

     1 import web
     2 
     3 urls = (
     4     '/(.*)','hello'
     5 )
     6 app = web.application(urls,globals())
     7 
     8 class hello:
     9     def GET(self,name):
    10         if not name:
    11             name = 'world'
    12         return 'hello,'+name+'!'
    13 
    14 if __name__=='__main__':
    15     app.run()

    类似于flask模板,这里也可以使用文件读写返回html内容:

     1 import web
     2 
     3 urls = (
     4     '/(.*)','hello'
     5 )
     6 app = web.application(urls,globals())
     7 
     8 class hello:
     9     def GET(self,name): 
    10         return open(r'index.html','r').read()
    11 
    12 if __name__=='__main__':
    13     app.run()

      URL映射:

          完全匹配: /index

          模糊匹配  /post/d+

          带组匹配     /post/(d+)

     1 import web
     2 
     3 urls = (
     4     '/blog/d+','blog',
     5     '/index','index',
     6     '/(.*)','hello',
     7 )
     8 app = web.application(urls,globals())
     9 
    10 class index:
    11     def GET(self):
    12         return 'index'
    13 
    14 class blog:
    15     def GET(self):
    16         return 'blog'
    17 
    18 class hello:
    19         def GET(self,name): 
    20             return 'hello'
    21 
    22 if __name__=='__main__':
    23     app.run()                           

      请求处理:

        请求参数获取 :  web.input()

           hello.html源码:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 
     4 <head>
     5     <meta charset="UTF-8">
     6     <title>User Login</title>
     7 </head>
     8 
     9 <body>
    10 <div>
    11     <h6>User Login</h6>
    12 </div>
    13 <form action="/blog/123" method="POST">
    14     <h6>用戶名:</h6>
    15     <input type="text" name="username"><br>
    16     <h6>密碼:</h6>
    17     <input type="password" name="password"><br>
    18     <input type="submit" name="submit"><br>
    19 </form>
    20 </body>
    21 </html>

        app.py源码:

     1 import web
     2 
     3 urls = (
     4     '/blog/d+','blog',
     5     '/index','index',
     6     '/(.*)','hello',
     7 )
     8 app = web.application(urls,globals())
     9 
    10 class index:
    11     def GET(self):
    12         r = web.input()
    13         return r
    14 
    15 class blog:
    16     def POST(self):
    17         r = web.input()
    18         return r 
    19 
    20 class hello:
    21         def GET(self,name): 
    22             return open(r'hello.html','r').read()
    23 
    24 if __name__=='__main__':
    25     app.run()

        运行结果:

             

                  

                  

       请求头获取    :  web.ctx.env

          app.py代码如下,hello.html代码如上相同

     1 import web
     2 
     3 urls = (
     4     '/blog/d+','blog',
     5     '/index','index',
     6     '/(.*)','hello',
     7 )
     8 app = web.application(urls,globals())
     9 
    10 class index:
    11     def GET(self):
    12         return web.ctx.env
    13 
    14 class blog:
    15     def POST(self):
    16         r = web.input()
    17         return r 
    18 
    19 class hello:
    20         def GET(self,name): 
    21             return open(r'hello.html','r').read()
    22 
    23 if __name__=='__main__':
    24     app.run()

              运行结果:        响应处理:

         模板文件读取:render.index("参数")

              在py文件同目录下要创建templates文件夹,存放模板。 

              index是指定模板的名称,参数是html中是所需参数。         

     1 import web
     2 
     3 render = web.template.render("templates")
     4 
     5 urls = (
     6     '/blog/d+','blog',
     7     '/index','index',
     8     '/(.*)','hello',
     9 )
    10 app = web.application(urls,globals())
    11 
    12 class hello:
    13         def GET(self,name): 
    14             return render.hello()
    15 
    16 if __name__=='__main__':
    17     app.run()

             采用模板就可以不用之前所用的open(r'hello.html','r').read()了。

        结果数据获取:model.select("sql")

            参考我之前的文章http://www.cnblogs.com/LexMoon/p/Flask_6.html

        URL跳转       :web.seeother("/")    

     1 import web 
     2 
     3 urls = (
     4     '/(.*)','hello',
     5 )
     6 app = web.application(urls,globals())
     7 
     8 class hello:
     9         def GET(self,name): 
    10             return web.seeother('http://www.cnblogs.com/LexMoon/')
    11 
    12 if __name__=='__main__':
    13     app.run()
  • 相关阅读:
    java循环遍历枚举类型,Enum根据文本获取Key
    java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式
    jdk8的特性stream().map()
    jrebel2019注册码
    Vue刷新后页面后报404的问题
    JS中对List、Map的各种遍历方式
    防止vue重复点击
    elementUI 按钮美化
    Vue路由<router-link>属性的使用
    Maven 打包com.mongodb does not exist
  • 原文地址:https://www.cnblogs.com/LexMoon/p/pythonWeb.html
Copyright © 2011-2022 走看看