tha*_*s.a 4 python validation wtforms flask-wtforms
我正在使用带有Flask的wtforms,并且有一个电子邮件输入框。我想验证电子邮件条目,但也将其作为非必填字段。用户可以忽略它,但如果他们输入它,我想确保它通过 wtforms 的电子邮件验证器。
理想情况下,我想要这样的东西:
email = StringField('Email', validators=[Email(), DataNotRequired()])
Run Code Online (Sandbox Code Playgroud)
或者
email = StringField('Email', validators=[Email(required=False)])
Run Code Online (Sandbox Code Playgroud)
我想使用 Flask-WTforms 实现这一目标的唯一可能方法是创建一个自定义 验证器。在这种情况下,有没有办法在我的自定义验证器中利用 Email() 验证器,这样我就不必重新实现它?
像这样的东西:
def validate_email(form, field):
if len(field.data) > 0:
if (not Email(field.data)):
raise ValidationError('Email is invalid')
Run Code Online (Sandbox Code Playgroud)
验证器“可选”应该可以解决问题。如果数据字段不包含值或仅包含空格,“可选”将停止计算链,而不会引发错误:
email = StringField('Email', validators=[Optional(), Email()])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1400 次 |
| 最近记录: |