我正在使用python web.py框架来设计小型Web应用程序,并尝试使用Password length must be more than five characters.
根据web.py框架,我们可以编写正则表达式来验证密码字段和 下面是我的代码
render = web.template.render('templates/')
urls = (
'/login', 'Login',
'/projects', 'Projects',
'/project_details', 'Project_Details',
)
app = web.application(urls, globals())
vpass = form.regexp('Must be more than 5', lambda x:int(x)>5)
class Login:
login_form = form.Form(
form.Textbox('username', form.notnull),
form.Password('password',vpass, description="Password"),
form.Button('Login'),
)
def GET(self):
form = self.login_form()
return render.login(form)
def POST(self):
if not self.login_form.validates():
return render.login(self.login_form)
if __name__ == "__main__":
web.internalerror = web.debugerror
app.run()
但是当我点击登录按钮时,浏览器“password length must......
”上没有显示任何消息。
上面的正则表达式是否正常工作?
如何在web.py frameowrk中实施密码验证
答案 0 :(得分:0)
您想使用Validator
,而不是rexexp
对象:
vpass = form.Validator('Must be more than 5 characters', lambda x:len(x)>5)
rexexp
对象需要将python正则表达式作为第一个参数,并将错误消息作为第二个参数。验证正则表达式的密码类似于:
vpass = form.regexp('.{6,}', 'Must be at least 6 characters')