在请求中验证用户输入是否合法是个比较麻烦的事情, 但其实web.form已经为我们提供了这方便的函数可以直接调用.

我们仅仅需要定义出一个form和每个字段的验证规则, 其他的事情web.form就自动替我们完成了.

下面是个十分简单的例子

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import web
from web import form
urls = (
    '/', 'hello',
)
app = web.application(urls, globals())
#定义字段验证规则
vpass = form.regexp(r".{3,20}$", 'must be between 3 and 20 characters')
#定义form表格内容
t_form = form.Form(
        form.Textbox('u',vpass,description='username'),
        form.Textbox('p',vpass,description='password')
)
class hello:
    def GET(self):
        """GET方法返回一个Form表格"""
        return """<html>
    <body>
        <form action="/" method="post">
            <p>user name: <input type="text" name="u" /></p>
            <p>password : <input type="password" name="p" /></p>
            <input type="submit" value="Submit" />
        </form>
    </body>
</html>
"""
    def POST(self):
        #生成一个form实例
        f = t_form()
        #返回form验证是否通过
        return f.validates()
if __name__ == "__main__":
    app.run()

更多form用法可以参考文档