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.

어디에서나 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.