除了get,浏览器与服务器常见的通信还有post.
来看一个post的例子。
import web,os
render = web.template.render('templates/')
urls = ('/','index')
login = form.Form(
form.Textbox('username'),
form.Password('password'),
form.Password('password_again'),
form.Button('set',type = 'submit'),
validators = [form.Validator("Passwords didn't match.", lambda i: i.password == i.password_again)])
class regsiter:
def GET(self):
f=login()
return render.formtest(f)
def POST(self):
f=login()
if not f.validates():
return render.formtest(f)
else:
print f['username'].value
print f['password'].value
return "Success!"
if __name__ == "__main__":
app = web.application(urls,globals())
app.run()
formtest代码如下:
$def with (form)
<form name="main" method="post">
<em>表单使用</em>
$:form.render()
</form>
一个简单的登录例子。