WTForms: Installieren Sie 'email_validator' für die Unterstützung der E-Mail-Validierung

15

Ausnahme erhalten, wenn der folgende Code zur Formularüberprüfung ausgeführt wird.

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.

Läuft perfekt auf codeanywhere VM. Funktioniert nicht auf dem lokalen Computer.

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
quelle
Die Stapelverfolgung könnte eine Formatierung verwenden.
Sid

Antworten:

16

Wenn Sie sich die Datei wtforms / validators.py in Zeile 9 ansehen:

import email_validator

Installieren Sie einfach das Paket:

pip install email_validator
ivan_filho
quelle
2
Auch die Ausnahme macht die Lösung klar:Exception: Install 'email_validator' for email validation support.
dspencer
Meine schlechte Person. Ich war neugierig, warum es ausdrücklich auf meiner lokalen Instanz darum gebeten wurde, wenn es nicht auf meiner VM war. Ich habe von Anfang an versucht, solche maschinen- / plattformübergreifenden Fehler zu antizipieren und zu vermeiden.
VeeDuvv
2
Ich bin erst heute auf dasselbe Problem gestoßen, bei dem die App auf meinem lokalen Computer einwandfrei ausgeführt wird, dieser Fehler jedoch auf der VM ausgelöst wird. WTForms hat gerade heute eine neue Version 2.3.1 veröffentlicht, die alles kaputt gemacht hat. Zurück zu 2.2.1 zu gehen hat es für mich behoben.
Absk
3

Ich hatte das gleiche Problem mit den neuesten Updates, versuchte, email_validator und flask-validator zu installieren und fuhr mit dieser Ausnahme fort. Gelöst durch Hinzufügen der folgenden Zeile in require.txt: email-validator == 1.0.5 wie vorgeschlagen [hier]. ( Https://github.com/alphagov/notifications-admin/commit/5ce2906c5aa6d16 )

CelioMarcos
quelle
löste mein Problem
Andrzej O
3

Wenn Sie möchten, dass es installiert wird mit wtforms:

pip install wtforms[email]
Munsu
quelle