WTForms:電子メール検証サポートのために 'email_validator'をインストールします


15

フォーム検証のために次のコードを実行すると例外が発生します。

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.

codeanywhere VMで完全に実行されます。ローカルマシンにはありません。

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

スタックトレースは、いくつかのフォーマットを使用できます。
シド

回答:


16

9行目のwtforms / validators.pyファイルを見ると、次のようになります。

import email_validator

パッケージをインストールするだけです:

pip install email_validator

2
でも例外は、溶液が透明になります:Exception: Install 'email_validator' for email validation support.
dspencer

私の悪いppl ..私のvmにないときにローカルインスタンスで明示的に要求する理由を知りました。そのようなクロスマシン/プラットフォームエラーを最初から予測して回避する方法を理解しようとしていました。
VeeDuvv

2
今日も同じ問題が発生しました。ローカルではアプリは正常に実行されますが、VMでこのエラーがスローされます。WTFormsは、本日、新しいバージョン2.3.1をリリースしました。2.2.1に戻って修正しました。
absk


3

あなたがそれをインストールしたいならwtforms

pip install wtforms[email]
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.