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

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

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

Jika Anda ingin menginstalnya dengan wtforms:

pip install wtforms[email]
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.