gpt4 book ai didi

python - wtform 上的实时验证。我可以访问前端的验证器吗?

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:42 24 4
gpt4 key购买 nike

我有一个 wtform 类,如下所示:

class Registration(Form):
email = StringField('Email', validators=[Required(), Email()])
username = StringField('Username', validators=[Required()])
name = StringField('Name', validators=[Required()])
password = PasswordField('Password',
validators=[
Required(),
EqualTo('confirm_password', message='Your passwords did not match'),
Length(min=6, max=20, message='passwords must be longer than 6 characters')
])
confirm_password = PasswordField('Confirm Password', validators=[Required()])
submit = SubmitField('Register')

def validate_email(self, field):
if User.query.filter_by(email=field.data).first():
raise ValidationError('Email already registered')

def validate_username(self, field):
if User.query.filter_by(username=field.data).first():
raise ValidationError('Username already exists')

我认为 WTForms 不会在前端提供任何形式的实时内联验证,这很好,但我想知道是否有一种方法可以通过获取字段的验证器并使用来进行实时验证它们在某种 JavaScript 中。

例如,密码字段。密码必须长于 6 个字符。在这种情况下,我想在他们输入时显示一个验证表单: what happens when they type in an invalid password

但是,一旦他们输入有效长度的密码,就会显示以下内容: they keep typing and make a valid password

我遇到的问题是访问页面上 wtform 的要求和验证器。这可以做到吗?

最佳答案

我使用的方法并不完全简单,但也不是太复杂。我将处理程序附加到我想要验证的字段上的更改或模糊事件。当我收到此事件时,我的处理程序会收集表单中所有字段的值并向服务器提交 ajax POST 请求。服务器现在拥有完整的表单,并且可以使用 WTForms 进行验证。此 Ajax 请求的 JSON 响应是验证错误列表,客户端可以根据需要显示该列表。

更多详细信息请参见this answer .

关于python - wtform 上的实时验证。我可以访问前端的验证器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24208760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com