WTForms:安装“ email_validator”以获得电子邮件验证支持

时间:2020-04-22 03:31:35

标签: python flask wtforms

运行以下代码进行表单验证时获取异常。

File "/Users/homeduvvuri/Documents/Learning/PartyGoUdemy/PartGo/user/forms.py", line 11, in BaseUserForm
    email = EmailField('Email', [validators.DataRequired(), validators.Email()])
File "/Users/homeduvvuri/Documents/Learning/PartyGoUdemy/PartGo/partgo-env/lib/python3.7/site-packages/wtforms/validators.py", line 332, in __init__
    raise Exception("Install 'email_validator' for email validation support.")
Exception: Install 'email_validator' for email validation support.

在codeanywhere VM上完美运行。不在本地计算机上。

from flask_wtf import FlaskForm
from flask_wtf.file import FileField, FileAllowed
from wtforms import Form, StringField, PasswordField, validators, ValidationError
from wtforms.validators import InputRequired, Email
from wtforms.fields.html5 import EmailField
from wtforms.widgets import TextArea
from user.models import User

class BaseUserForm(FlaskForm):
    name = StringField('Name', [validators.DataRequired(), validators.Length(min=2, max=30)])
    email = EmailField('Email', [validators.DataRequired(), validators.Email()])

12 个答案:

答案 0 :(得分:54)

如果您看一下第9行的wtforms / validators.py文件:

import email_validator

只需安装软件包:

pip install email_validator

答案 1 :(得分:19)

如果要与wtforms一起安装:

pip install wtforms[email]

答案 2 :(得分:5)

尝试安装

pip install email-validator

答案 3 :(得分:4)

我在最新更新中遇到了相同的问题,尝试安装email_validator和flask-validator并继续出现此异常。通过添加解决 requirements.txt的以下行:email-validator == 1.0.5,如建议的[此处]。(https://github.com/alphagov/notifications-admin/commit/5ce2906c5aa6d16

实际上我需要wtforms [email] == 2.3.1。

答案 4 :(得分:3)

当我使用虚拟环境运行它时,这也发生在我身上。水蟒3.7 但是,当我将项目解释器切换回本地计算机Python 3.7时,我将运行:

通过pip安装email_validator

工作正常。

我只是感到奇怪,无法在anaconda Project Interpreter中安装模块“ email_validator”。因此,我建议您先尝试使用本地计算机。

答案 5 :(得分:3)

您需要pip install email-validator,wtforms取决于电子邮件验证程序。

您可以在Github https://github.com/JoshData/python-email-validator上看到电子邮件验证器模块

答案 6 :(得分:3)

这应该对我有用。 只需在项目终端中安装它:

pip install email-validator

答案 7 :(得分:2)

尝试安装

pip install WTForms==2.1 

答案 8 :(得分:1)

来自 wtf 表格

<块引用>

验证电子邮件地址。需要安装 email_validator 包。例如:pip install wtforms[email]。

pip install wtforms[email]

pip install email_validator

答案 9 :(得分:0)

在WTForms 2.3.0 version中,电子邮件验证由名为email-validatorPR #429)的外部库处理。如果要启用电子邮件验证支持,则需要安装WTForms,且有额外要求email

$ pip install wtforms[email]

或者您可以直接安装email-validator

$ pip install email-validator

或者您可以返回旧版本的WTForms:

$ pip install wtforms==2.2.1

PS如果您使用的是Flask-WTF,则除了直接安装email-validator以外,还可以在其中使用email的额外{如果PR #423被合并)下一个release(> 0.14.3)。

答案 10 :(得分:0)

在您的项目目录中运行:

pip install email_validator

这对我有用!

答案 11 :(得分:0)

我不知道根本原因是否是我在终端中使用了 zsh,但是当我尝试下面的命令时,我也收到了错误“zsh:没有找到匹配项:wtforms[email]”。

pip install wtforms[email]

但是,我尝试执行以下命令,它对我有用。

pip install -U "wtforms[email]"