WTForms: установите 'email_validator' для поддержки проверки электронной почты - PullRequest
18 голосов
/ 22 апреля 2020

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

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()])

Ответы [ 3 ]

19 голосов
/ 22 апреля 2020

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

import email_validator

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

pip install email_validator
4 голосов
/ 24 апреля 2020

Если вы хотите установить его с wtforms:

pip install wtforms[email]
3 голосов
/ 23 апреля 2020

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

На самом деле wtforms [email] == 2.3 .1 это то, что мне нужно.

...