web.py是一款轻量级的python web开发框架,简单、高效、学习成本低,特别适合作为python web开发的入门框架。
一、web.py安装
1、下载安载
下载:http://webpy.org/static/web.py-0.38.tar.gz
解压并进入web.py-0.38目录,安装:
python setup.py install
2、pip安装
pip install web.py
二、quick start
import web
urls = (
'/(.*)', 'hello'
)
app = web.application(urls, globals())
class hello:
def GET(self, name):
if not name:
name = 'World'
return 'Hello, ' + name + '!'
if __name__ == "__main__":
app.run()
启动运行这段py代码:
python hello.py
打开浏览器,访问:http://127.0.0.1:8080
,就会看到页面输出Hello, World!
访问http://127.0.0.1:8080/Python
,页面会输出:Hello, Python !
,这里Python就是对应的GET方法的name参数传入的。
三、URL映射
URL映射就是一个URL请求由哪块代码(类、函数)来处理。web.py 的 URL 控制模式简单的、强大的、灵活。在每个应用的最顶部,通常会看到整个 URL 调度模式被定义在元组中:
# URL映射
urls = (
'/', 'Index',
'/view/(\d+)', 'View',
'/new', 'New',
'/delete/(\d+)', 'Delete',
'/edit/(\d+)', 'Edit',
'/login', 'Login',
'/logout', 'Logout',
)
这些元组的格式是:
URL 路径, 处理类
这组定义有多个。可以利用强大的正则表达式去设计更灵活的 URL 路径。比如 /(test1|test2) 可以捕捉 /test1 或 /test2。
URL映射有3种类型:
- URL完全匹配
'/index','Index'
,由Index类处理http://127.0.0.1:8080/index
- URL模糊匹配
'/post/\d+','Post'
,由Post类处理 如http://127.0.0.1:8080/post/3
,post/后面带一个数字的URL - URL带组匹配
'/post2/(\d+)','Post2'
,Post2类处理 如http://127.0.0.1:8080/post2/3
,post2/后面带一个数字的URL,Post2类会接受处理url post2后面的参数。而模糊匹配的方式是不处理参数的。
四、请求处理
URL的请求参数,包括URL查询的参数(?后面的内 容),表单提交(GET、POST方法),都是用 web.input()取得。
data = web.input()
数据是以字典的方式获到到。
五、响应处理(模板)
1、模板的路径
html放到templates路径下,指定模板文件的路径
render = web.template.render('templates')
2、调用模板
class hello:
def GET(self):
return render.abc()
hello类get方法返回处理的页面是teplates下的abc.html,render.abc()
,这里的abc是对应于template下的abc.html的文件名。
3、使用公共模板
1)公共模板相当于页面框架。指定公共模板:
# 指定模板目录,并设定公共模板
render = web.template.render('templates', base='base', globals=t_globals)
2)在公共模板base.html
嵌入其他页面的内容
$def with (page)
My Blog
$:page
注意: page就是传入其他被嵌入页面,$:page
是显示嵌入页面的内容
后续内容:
- 数据库操作
- session cookie
- web.py项目
参考:
- web.py官网
- web.py cookbook