在此脚本中,我将wtforms.validator中InputRequired的消息设置为显示错误。另外,我给出了一个字符长度的max和min。但这些论点并不起作用。
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, IntegerField, SubmitField,StringField
from wtforms.validators import ValidationError, Length, EqualTo, InputRequired, Email
class Login(FlaskForm):
email =StringField(validators=[InputRequired(message = 'please input something'), Length(min=10, max=20), Email(message='this is not email')])
password = PasswordField(validators=[InputRequired(message='please input something'), Length(min=8, max=20, message='you must be input more than 8 character')])
submit = SubmitField('Enter')
class Register(FlaskForm):
email =StringField(validators=[InputRequired(message = 'please input something'), Length(min=10, max=20), Email(message='this is not email')])
phone = IntegerField(validators=[InputRequired(message='please input something')])
password = PasswordField(validators=[InputRequired(message='please input something'), Length(min=8, max=20, message='you must be input more than 8 character')])
submit = SubmitField('Enter')此脚本为login.html
{% extends "base.html" %}
{% block content %}
<h3>this is Home page</h3>
<form action="#">
<!-- {{forlogin.hidden_tag()}} -->
{{forlogin.email(placeholder="email")}}
<br>
{{forlogin.password(placeholder="password")}}
<br>
{{forlogin.submit}}
</form>
{% endblock content %}发布于 2021-03-03 20:31:04
从WTForms文档中的字段类文档:
错误
如果验证遇到任何错误,它们将被插入到此列表中。
因此,要显示错误,您必须在页面上显示列表中的项目:
<form action="#">
{{login.email(placeholder="email")}}{% for error in login.email.errors %} {{ error }} {% endfor%}
</form>我不知道双花括号之间的for是用来做什么的,我把它删除了。它导致了Jinja2中的错误。
https://stackoverflow.com/questions/66446109
复制相似问题