이전 포스팅에 이어서 유효성 검사
Validating Forms
1. vaildator 객체를 추가한다.
from flask_wtf import FlaskForm
from wtforms import StringField,PasswordField,SubmitField
from wtforms.validators import DataRequired
class MyForm(FlaskForm):
email = StringField('Email',validators=[DataRequired()])
password=PasswordField('Password',validators=[DataRequired()])
submit=SubmitField("Login")
유효성 검사에도 필수입력인가, @이 포함되었는가, 특수문자가 포함되었는가 등의 많은 검사들이 있을 것이고
그중에서 DataRequired()는 필수 입력을 나타낸다.
만일 사용자가 입력하지 않으면 오류가 발생된다.
오류가 많을시에는 errors리스트가 생성되고 html로 전달한다.
<form action="/login" methods="POST">
{{form.csrf_token}}
<p>{{form.email.label}} 🍏<br> {{form.email(size=30)}}
{% for err in form.email.errors %}
<span>{{error}}</span>
{% endfor %}
</p>
<p>{{form.password.label}} 🍎<br> {{form.password(size=30)}}
{% for err in form.password.errors %}
<span>{{error}}</span>
{% endfor %}
</p>
{{form.submit}}
2. @이 포함된 유효 이메일과 비밀번호 길이 검사
이메일 검사를 하기위해서 email-validator패키지를 설치하래서 서했는데
비밀번호길이 검사는 잘되는데 이메일에 @이 있는지 없는지 검사는 왜 안될까?
흠,,
class MyForm(FlaskForm):
email = StringField('Email',validators=[DataRequired(),Email()])
password=PasswordField('Password',validators=[DataRequired(),Length(min=8)])
submit=SubmitField("Login")