WTForms: Instal 'email_validator' untuk dukungan validasi email

15

Mendapatkan pengecualian saat menjalankan kode berikut untuk validasi formulir.

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.

Berjalan dengan sempurna di codeanywhere VM. Tidak pada mesin lokal.

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
sumber
Jejak tumpukan dapat menggunakan beberapa format.
Sid

Jawaban:

16

Jika Anda melihat file wtforms / validators.py di baris 9:

import email_validator

Cukup instal paket:

pip install email_validator
ivan_filho
sumber
2
Bahkan pengecualian membuat solusi menjadi jelas:Exception: Install 'email_validator' for email validation support.
dspencer
Ppl buruk saya .. Saya ingin tahu mengapa secara eksplisit meminta untuk melakukannya pada contoh lokal saya ketika tidak pada vm saya. mencoba mencari cara untuk mengantisipasi dan menghindari kesalahan lintas mesin / platform dari awal.
VeeDuvv
2
Saya mengalami masalah yang sama hanya hari ini, di mana aplikasi berjalan dengan baik di lokal saya tetapi melempar kesalahan ini pada VM. WTForms merilis versi baru 2.3.1 hari ini yang memecahkan banyak masalah. Kembali ke 2.2.1 memperbaikinya untuk saya.
absk
3

Saya memiliki masalah yang sama dengan pembaruan terbaru, mencoba menginstal email_validator dan flask-validator dan melanjutkan pengecualian ini. Dipecahkan dengan menambahkan persyaratan.txt baris berikut: email-validator == 1.0.5 seperti yang disarankan [di sini]. ( Https://github.com/alphagov/notifications-admin/commit/5ce2906c5aa6d16 )

CelioMarcos
sumber
memecahkan masalah saya
Andrzej O
3

Jika Anda ingin menginstalnya dengan wtforms:

pip install wtforms[email]
munsu
sumber