web.py框架入门

时间:2024-09-15 23:35:26

在使用微信搭建公众平台的时候,使用的是web.py这个方便简单的框架,学习一下。

框架文档:http://webpy.org/docs/0.3/tutorial.zh-cn  按照文档的内容写一遍程序入门就没什么问题了

运行程序:cmd中--进入文件所在路径--输入 python 文件名即可运行

遇到的问题:

问题1.模板文件中,第一行必须以 $def with()开头,否则会报错

$def with (name)

$if name:
I just wanted to say <em>hello</em> to $name.
$else:
<em>Hello</em>, world!

问题2.模板文件 html中的python语句不能被注释,否则会报错。其他可以注释

问题3.网页跳转与重定向--web.seeother和web.redirect

链接:http://doc.outofmemory.cn/python/webpy-cookbook/redirect-seeother.html

class add:
def POST(self):
i=web.input()
n=db.insert('todo',title=i.title)
raise web.seeother('/')

POST方法接收到一个post并完成处理后,它将给浏览器发送一个303消息和新网址。接下来,

浏览器会对这个新网址发出GET请求,从而完成新跳转。

注意:web.seeother和web.redirect不支持0.3以下版本。

区别:

用web.redirect方法似乎也能做同样的事情,但通常来说,这并太友好。因为web.redirect发送的是301消息-

这是永久重定向。因为大多数Web浏览器会缓存新的重定向,所以当我们再次执行该操作时,会自动直接访问

重定向的新网址。很多时候,这不是我们所想要的结果。所以在提交表单时,尽量使用seeother。但是在下面要

提到的这种场合,用redirect却是最恰当的:我们已经更改了网站的网址结构,但是仍想让用户书签/收藏夹中的

旧网址不失效。(注:要了解seeother和redirect的区别,最好是看一下http协议中不同消息码的含义。)