WTForms: installa 'email_validator' per il supporto della validazione e-mail


15

Ottenere l'eccezione quando si esegue il codice seguente per la convalida del modulo.

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.

Funziona perfettamente su codeanywhere VM. Non sul computer locale.

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

La traccia dello stack potrebbe usare un po 'di formattazione.
Sid,

Risposte:


16

Se dai un'occhiata al file wtforms / validators.py nella riga 9:

import email_validator

Basta installare il pacchetto:

pip install email_validator

2
Anche l'eccezione chiarisce la soluzione:Exception: Install 'email_validator' for email validation support.
dspencer il

Mio cattivo ppl .. Ero curioso di sapere perché mi è stato esplicitamente chiesto di farlo sulla mia istanza locale quando non è stato sul mio VM. stavo cercando di capire come anticipare ed evitare tali errori cross-machine / platform sin dall'inizio.
VeeDuvv,

2
Ho riscontrato lo stesso problema proprio oggi, in cui l'app funziona correttamente sul mio locale ma genera questo errore sulla VM. WTForms ha rilasciato una nuova versione 2.3.1 proprio oggi che ha rotto le cose. Tornando alla 2.2.1 è stato risolto per me.
absk il


3

Se vuoi installarlo con wtforms:

pip install wtforms[email]
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.