我正在使用一本书来研究Flask的开发,它说您可以将输入框验证放在模板本身中,而不是触发DataRequired(),并且会弹出小气泡,表明您未输入密码或用户名。
我尝试了模板代码和精选的form.py代码。
{% extends "base.html" %}
{% block content %}
<h1>Sign In</h1>
<form action="" method="post">
{{ form.hidden_tag() }}
<p>
{{ form.username.label }}<br />
{{ form.username(size=32) }}
{% if form.username.errors %}
<ul class="errors">{% for error in form.username.errors %}<li>{{ error }}</li>{% endfor %}</ul>
{% endif %}
</p>
<p>
{{ form.password.label }}<br />
{{ form.password(size=32) }}
{% if form.password.errors %}
<ul class="errors">{% for error in form.password.errors %}<li>{{ error }}</li>{% endfor %}</ul>
{% endif %}
</p>
<p>{{ form.remember_me() }} {{ form.remember_me.label }}</p>
<p> {{ form.submit() }}</p>
</form>
{% endblock %}
forms.py:
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, BooleanField, SubmitField
from wtforms.validators import DataRequired
class LoginForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired()])
remember_me = BooleanField('Remember Me')
submit = SubmitField('Sign In')
如果输入框为空,应该以红色显示带有错误的UL标记的LI,而是使用默认值,即弹出一个小气泡,提示输入信息。