Python——Web.py詳解

简介:   ubuntu安裝Web.py 1 sudo pip install web.py   測試代碼: 1 import web 2 3 urls = ( 4 '/(.

 

  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()
目录
相关文章
|
16天前
|
数据采集 XML 数据处理
使用Python实现简单的Web爬虫
本文将介绍如何使用Python编写一个简单的Web爬虫,用于抓取网页内容并进行简单的数据处理。通过学习本文,读者将了解Web爬虫的基本原理和Python爬虫库的使用方法。
|
1天前
|
设计模式 开发框架 数据库
Python Web开发主要常用的框架
Python Web开发框架包括Django、Flask、Tornado和Pyramid。Django适用于复杂应用,提供ORM、模板引擎等全套功能;Flask轻量级,易于扩展,适合小型至中型项目;Tornado擅长处理高并发,支持异步和WebSockets;Pyramid灵活强大,可适配多种数据库和模板引擎,适用于各种规模项目。选择框架需依据项目需求和技术栈。
8 2
|
1天前
|
安全 测试技术 持续交付
在Python Web开发中,测试是一个至关重要的环节
【5月更文挑战第12天】在Python Web开发中,测试至关重要,包括单元测试(unittest模块)、集成测试、功能测试、系统测试、验收测试、性能测试、安全测试和端到端测试。常用的测试工具有unittest、pytest、selenium、requests和coverage。遵循“测试先行”和“持续集成”原则,确保代码质量与稳定性。
8 3
|
2天前
|
缓存 数据库连接 数据库
构建高性能的Python Web应用:优化技巧与最佳实践
本文探讨了如何通过优化技巧和最佳实践来构建高性能的Python Web应用。从代码优化到服务器配置,我们将深入研究提高Python Web应用性能的各个方面。通过本文,读者将了解到一系列提高Python Web应用性能的方法,从而更好地应对高并发和大流量的挑战。
|
5天前
|
存储 程序员 API
python web开发示例详解
python web开发示例详解
13 0
|
6天前
|
数据采集 Python
使用Python实现简单的Web爬虫
本文将介绍如何使用Python编写一个简单的Web爬虫,用于抓取网页上的信息。通过分析目标网页的结构,利用Python中的requests和Beautiful Soup库,我们可以轻松地提取所需的数据,并将其保存到本地或进行进一步的分析和处理。无论是爬取新闻、股票数据,还是抓取图片等,本文都将为您提供一个简单而有效的解决方案。
|
7天前
|
持续交付 Python
使用Python实现自动化Web内容巡检
使用Python实现自动化Web内容巡检
19 1
|
7天前
|
数据采集 存储 XML
如何利用Python构建高效的Web爬虫
本文将介绍如何使用Python语言以及相关的库和工具,构建一个高效的Web爬虫。通过深入讨论爬虫的基本原理、常用的爬虫框架以及优化技巧,读者将能够了解如何编写可靠、高效的爬虫程序,实现数据的快速获取和处理。
|
8天前
|
前端开发 JavaScript Python
使用Python读取本地行情csv文件,做出web网页画出K线图实现案例
【5月更文挑战第4天】使用Python绘制K线图的步骤:1) 安装pandas, matplotlib和Flask;2) 用pandas读取CSV文件并处理数据;3) 创建Flask应用,渲染包含K线图数据的HTML;4) 编写HTML,使用ECharts库绘制K线图。
26 0
|
14天前
|
缓存 前端开发 安全
Python web框架fastapi中间件的使用,CORS跨域详解
Python web框架fastapi中间件的使用,CORS跨域详解