Python 表单中的非必需电子邮件验证

Python 表单中的非必需电子邮件验证,python,validation,flask-wtforms,wtforms,Python,Validation,Flask Wtforms,Wtforms,我将wtforms与flask一起使用,我有一个电子邮件输入框。 我想验证电子邮件条目,但也将其作为非必填字段。 用户可以ommit,但如果他们输入它,我希望确保它通过wtforms的电子邮件验证程序 理想情况下,我想要这样的东西: email = StringField('Email', validators=[Email(), DataNotRequired()]) 或 我想使用表单实现这一点的唯一可能方法是创建一个自定义验证器。在这种情况下,有没有办法在我的自定义验证器中使用Email(

我将wtformsflask一起使用,我有一个电子邮件输入框。 我想验证电子邮件条目,但也将其作为非必填字段。 用户可以ommit,但如果他们输入它,我希望确保它通过wtforms的电子邮件验证程序

理想情况下,我想要这样的东西:

email = StringField('Email', validators=[Email(), DataNotRequired()])

我想使用表单实现这一点的唯一可能方法是创建一个自定义验证器。在这种情况下,有没有办法在我的自定义验证器中使用Email()验证器,这样我就不必重新实现它了

诸如此类:

def validate_email(form, field):
    if len(field.data) > 0:
        if (not Email(field.data)):
            raise ValidationError('Email is invalid')
验证器“可选”应该可以解决这个问题。如果数据字段不包含值或仅包含空格,则“可选”会停止计算链,而不会引发错误:

email = StringField('Email', validators=[Optional(), Email()])
email = StringField('Email', validators=[Optional(), Email()])