使用正则表达式验证python web.py表单验证中的密码

时间:2012-10-11 13:50:59

标签: python regex forms validation web.py

我正在使用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中实施密码验证

1 个答案:

答案 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')