79 votes

WTForms : installez 'email_validator' pour la prise en charge de la validation des e-mails

Obtention d'une exception lors de l'exécution du code suivant pour la validation de formulaire.

 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.

Fonctionne parfaitement sur codeanywhere VM. Ne fonctionne pas sur la machine 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()])

82voto

ivan_filho Points 951

Si vous jetez un œil au fichier wtforms/validators.py à la ligne 9 :

 import email_validator

Installez simplement le paquet :

 pip install email_validator

26voto

munsu Points 796

Si vous voulez qu'il soit installé avec wtforms :

 pip install wtforms[email]

8voto

Essayez d'installer

 pip install email-validator

4voto

Celio Marcos Points 111

J'ai eu le même problème avec les dernières mises à jour, j'ai essayé d'installer email_validator et flask-validator et j'ai continué avec cette exception. Résolu en ajoutant requirements.txt la ligne suivante : email-validator == 1.0.5 comme suggéré [ici].( https://github.com/alphagov/notifications-admin/commit/5ce2906c5aa6d16 )

En fait, wtforms[email]==2.3.1 est ce dont j'ai besoin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X