当我在flask项目如下图建立表单时使用了Email验证器的时候,出现了让我安装‘email_validator’的提示,但我是根据书上的代码来敲的,就去找了一下原因:发现是2.3.0以后的WTForms已经不支持email验证器了,而我用来建立表单的flask-wtf是集成了wtforms的,所以也是没有该验证器的了。
class CommentForm(FlaskForm):
author = StringField('Name', validators=[DataRequired(), Length(1, 30)])
email = StringField('Email', validators=[DataRequired(), Email(), Length(1, 254)])
site = StringField('Site', validators=[Optional(), URL(), Length(0, 255)])
body = TextAreaField('Comment', validators=[DataRequired()])
submit = SubmitField()
解决方法有以下三种:
1.安装对email支持的wtforms
$ pip install wtforms[email]
2直接安装email-validator
$ pip install email-validator
3.回退wtforms版本
$ pip install wtforms==2.2.1
ps:上述回答参考自这里grey li的回答,但是那里还说如果用的是flask-wtf,那么在0.14.3之后的flask-wtf是可能可以用email-validator,目前我的版本是0.15.1,依然用不了那应该没有合并相关功能了。