1

小さなWebアプリケーションを設計するためにpython web.pyフレームワークを使用しており、そのコンセプトでパスワードフィールドを検証しようとしています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 フレームワークでパスワード検証を実装する方法

4

1 に答える 1

0

Validatorオブジェクトではなくを使用したいrexexp場合:

vpass = form.Validator('Must be more than 5 characters', lambda x:len(x)>5)

オブジェクトは、最初のrexexp引数として Python の正規表現を期待し、2 番目の引数としてエラー メッセージを期待します。正規表現を検証するパスワードは次のようになります。

vpass = form.regexp('.{6,}', 'Must be at least 6 characters')
于 2012-10-11T13:53:25.197 に答える