web.py快速入门(一)

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()
web.py快速入门(一)_第1张图片
代码讲解

启动运行这段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种类型:

  1. URL完全匹配
    '/index','Index',由Index类处理 http://127.0.0.1:8080/index
  2. URL模糊匹配
    '/post/\d+','Post',由Post类处理 如http://127.0.0.1:8080/post/3,post/后面带一个数字的URL
  3. 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

你可能感兴趣的:(web.py快速入门(一))