WTForms: Zainstaluj „email_validator”, aby uzyskać pomoc w sprawdzaniu poprawności wiadomości e-mail

15

Uzyskiwanie wyjątku podczas uruchamiania następującego kodu do sprawdzania poprawności formularza.

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.

Działa idealnie na maszynie wirtualnej codeanywhere. Nie działa na lokalnej maszynie.

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
źródło
Śledzenie stosu może wymagać pewnego formatowania.
Sid

Odpowiedzi:

16

Jeśli spojrzysz na plik wtforms / validators.py w linii 9:

import email_validator

Wystarczy zainstalować pakiet:

pip install email_validator
ivan_filho
źródło
2
Nawet wyjątek wyjaśnia rozwiązanie:Exception: Install 'email_validator' for email validation support.
dspencer
My bad ppl .. Byłem ciekawy, dlaczego wyraźnie poprosił o zrobienie tego na mojej lokalnej instancji, kiedy nie na mojej vm. od samego początku próbował dowiedzieć się, jak przewidywać i unikać takich błędów na różnych komputerach / platformach.
VeeDuvv
2
Ten sam problem napotkałem już dziś, gdy aplikacja działa dobrze na moim lokalnym, ale zgłasza ten błąd na maszynie wirtualnej. WTForms wydało dziś nową wersję 2.3.1, która wszystko zepsuła. Wracając do 2.2.1 naprawiłem to dla mnie.
absk
3

Miałem ten sam problem z najnowszymi aktualizacjami, próbowałem zainstalować email_validator i flask-validator i kontynuowałem ten wyjątek. Rozwiązany przez dodanie w pliku wymagań.txt następującego wiersza: email-validator == 1.0.5 zgodnie z sugestią [tutaj]. ( Https://github.com/alphagov/notifications-admin/commit/5ce2906c5aa6d16 )

CelioMarcos
źródło
rozwiązał mój problem
Andrzej O
3

Jeśli chcesz go zainstalować z wtforms:

pip install wtforms[email]
Munsu
źródło