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

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

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

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

pip install wtforms[email]
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.