WTForms: установите 'email_validator' для поддержки проверки электронной почты

15

Получение исключения при запуске следующего кода для проверки формы.

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.

Отлично работает на любом коде ВМ. Не на локальной машине.

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()])
VeeDuvv
источник
Трассировка стека может использовать некоторое форматирование.
Сид

Ответы:

16

Если вы посмотрите на файл wtforms / validators.py в строке 9:

import email_validator

Просто установите пакет:

pip install email_validator
ivan_filho
источник
2
Даже исключение проясняет решение:Exception: Install 'email_validator' for email validation support.
dspencer
Мой плохой чел .. Мне было любопытно, почему он явно просил сделать это на моем локальном экземпляре, когда это не было на моем виртуальном компьютере. пытался выяснить, как предвидеть и избежать таких кросс-машинных ошибок с самого начала.
VeeDuvv
2
Я столкнулся с той же проблемой только сегодня, когда приложение отлично работает на моем локальном компьютере, но выдает эту ошибку на виртуальной машине. WTForms выпустили новую версию 2.3.1 только сегодня, которая сломала вещи. Возвращение к 2.2.1 исправило это для меня.
Абск
4

Если вы хотите, чтобы он был установлен с wtforms:

pip install wtforms[email]
Munsu
источник
3

У меня была та же проблема с последними обновлениями, я пытался установить email_validator и flask-validator и продолжил с этим исключением. Решено, добавив в require.txt следующую строку: email-validator == 1.0.5, как предложено [здесь]. ( Https://github.com/alphagov/notifications-admin/commit/5ce2906c5aa6d16 )

CelioMarcos
источник
решил мою проблему
Анджей О