【发布时间】:2021-07-28 11:37:34
【问题描述】:
当使用Flask-WTF 创建一个表单并实现一个方法,比如检查用户名是否可用时,我很好奇这些方法如何/为什么起作用。
我的意思是,在其余代码中,您一次都没有引用表单类中定义的任何方法;他们似乎在不受任何干扰的情况下自行工作 - 有人可以解释它是如何以及为什么以这种方式工作的吗?
例如:
class RegistrationForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
email = StringField('Email', validators=[DataRequired(), Email()])
...
def validate_username(self, username):
user = User.query.filter_by(username=username.data).first()
if user is not None:
raise ValidationError('Please use a different username.')
上面的代码似乎在提交表单时运行validate_username,而无需我自己调用它。
【问题讨论】:
标签: flask flask-wtforms wtforms