web.py 进阶例程

 web.py 的首页提供了一个 13 行的例子来演示如何开始一个应用,但其网站上似乎就没有别的更进一步的例子了。这两天简短学习了一下,写一个进阶例程。包括:读取 GET/POST 变量,以及模板的使用。
 
#!/usr/bin/python
import web
 
urls = (
        ’/sample’, ’sample’,
        ’/(.*)’, ’hello’
       )
 
class hello:
    def GET(self, name):
        i = web.input(times=1)
        if not name: name = ’world’
        for c in xrange(int(i.times)): print ’Hello,’, name+’!’
 
class sample:
    def _request(self):
        render = web.template.render(’templates/’)
        cache = False
        i = web.input(fname = ’yingbo’, sname = ’qiu’)
        #交换 fname, sname 的值
        firstName = i.sname
        surName = i.fname
        print render.sample(firstName, surName)
    def GET(self):
        self._request()
    def POST(self):
        self._request()
 
if __name__ == "__main__":
    import os
    os.environ[’PHP_FCGI_CHILDREN’] = "1" #FastCGI 运行模式
    web.run(urls, globals())
 模板:templates/sample.html
 
$def with (firstName, surName)
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>dup2.net</title>
</head>
<body>
<form action="sample" method="post">
名:<input type="text" name="fname" value="$firstName" />
姓:<input type="text" name="sname" value="$surName" />
<input type="submit" value="提交" />
</form>
</body>
</html>
 访问 http://www.dup2.net/papp/sample 就可以看到效果。这个 sample 可以接受 GET/POST 请求。参数为 fname 和 sname。执行结果就是将这两个值交换显示。
web.py 每个 URL 请求分发到一个类。这里就把 sample 分发给 sample 类,其它的所有 URL 分发给 hello 类。访问一下 http://www.dup2.net/papp/ladf/badf?times=3 看看 hello 的效果。
HTTP GET 和 POST 分别执行 class 里面的 method。使用 web.input() 来取得 request 参数和值。
然后用 web.template.render() 初始化模板目录。方法名 "sample" 对应的 "sample.html" 模板文件
申明一点,这里的例子都是基于 web.py 0.2 版本的。现在网上的 web.py 中文教程是基于 0.1 的,如果你看到的文章一开始说要安装什么 Cheetah,那肯定不适用现在的情况了。
首先说的是 Python 连 MySQL,以及 UTF-8 字符集的事情。我这里假设你的应用是纯 UTF-8 的,而且使用 MySQL 4.1 以上的版本。
Python for MySQL 的连接扩展在 mysql-python,Debian Sarge 的包里面是 1.2.1c2 版,是不支持 4.1 的 Charset 特性的,最新的 1.2.1_p2 版支持的很好,只不过从这个版本开始必须依赖 Python2.4 了。

文章出处:DIY部落(http://www.diybl.com/course/1_web/webjs/2007111/81630.html)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值