1

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

4

1 回答 1

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')
于 2012-10-11T13:53:25.197 回答