Flask WTForms 中不需要的电子邮件验证
Non required email validation in Flask WTForms
我正在使用 wtforms 和 flask,并且我有一个电子邮件输入框。
我想 验证电子邮件 条目,但也将其作为 非必需的 字段。
用户可以忽略它,但如果他们输入它,我想确保它通过 wtforms 的电子邮件验证程序。
理想情况下,我想要这样的东西:
email = StringField('Email', validators=[Email(), DataNotRequired()])
或
email = StringField('Email', validators=[Email(required=False)])
我想使用 Flask-WTforms 实现此目的的唯一可能方法是创建一个 custom validator。在那种情况下,有没有办法在我的自定义验证器中利用 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()])
完整的电子邮件验证表单(登录表单)
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import StringField,PasswordField,SubmitField
from wtforms.validators import DataRequired , Email , Length
class login_form(FlaskForm):
email = StringField(label='Email *',validators=[DataRequired(),Email(message="Invalid Id , Check the Format")] ) #Email() can also be included
password = PasswordField(label='Password *',validators=[Length(min=6 ) ]) # message="Atleast 6 characters " can also be included
submit = SubmitField(label="Log In")
我正在使用 wtforms 和 flask,并且我有一个电子邮件输入框。 我想 验证电子邮件 条目,但也将其作为 非必需的 字段。 用户可以忽略它,但如果他们输入它,我想确保它通过 wtforms 的电子邮件验证程序。
理想情况下,我想要这样的东西:
email = StringField('Email', validators=[Email(), DataNotRequired()])
或
email = StringField('Email', validators=[Email(required=False)])
我想使用 Flask-WTforms 实现此目的的唯一可能方法是创建一个 custom validator。在那种情况下,有没有办法在我的自定义验证器中利用 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()])
完整的电子邮件验证表单(登录表单)
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import StringField,PasswordField,SubmitField
from wtforms.validators import DataRequired , Email , Length
class login_form(FlaskForm):
email = StringField(label='Email *',validators=[DataRequired(),Email(message="Invalid Id , Check the Format")] ) #Email() can also be included
password = PasswordField(label='Password *',validators=[Length(min=6 ) ]) # message="Atleast 6 characters " can also be included
submit = SubmitField(label="Log In")