WTForms: Cài đặt 'email_validator' để hỗ trợ xác thực email


15

Lấy ngoại lệ khi chạy mã sau để xác thực mẫu.

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.

Chạy hoàn hảo trên codeanywhere VM. Không có trên máy cục bộ.

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

Theo dõi ngăn xếp có thể sử dụng một số định dạng.
Sid

Câu trả lời:


16

Nếu bạn xem tập tin wtforms / validators.py trong dòng 9:

import email_validator

Chỉ cần cài đặt gói:

pip install email_validator

2
Ngay cả ngoại lệ cũng làm cho giải pháp rõ ràng:Exception: Install 'email_validator' for email validation support.
dspencer

Ppl xấu của tôi .. Tôi đã tò mò tại sao nó lại yêu cầu rõ ràng như vậy trong trường hợp địa phương của tôi khi nó không có trên vm của tôi. đã cố gắng tìm ra cách dự đoán và tránh các lỗi máy / nền tảng chéo như vậy ngay từ đầu.
VeeDuvv

2
Tôi đã gặp vấn đề tương tự chỉ ngày hôm nay, nơi ứng dụng chạy tốt trên máy cục bộ của tôi nhưng lại ném lỗi này trên VM. WTForms đã phát hành phiên bản mới 2.3.1 ngay hôm nay đã phá vỡ mọi thứ. Quay trở lại 2.2.1 đã sửa nó cho tôi.
absk

3

Tôi gặp vấn đề tương tự với các bản cập nhật mới nhất, đã cố gắng cài đặt email_validator và trình xác nhận bình và tiếp tục với ngoại lệ này. Được giải quyết bằng cách thêm vào request.txt dòng sau: email-validator == 1.0.5 như được đề xuất [tại đây]. ( Https://github.com/alphagov/notifying-admin/commit/5ce2906c5aa6d16 )


đã giải quyết vấn đề của tôi
Andrzej O

3

Nếu bạn muốn nó được cài đặt với wtforms:

pip install wtforms[email]
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.