flask wtform里的submitfield()字段不好使?
写了表单验证的代码,验证时发现不输入直接按提交按钮表单无法验证??后来我试着在用户名和密码处输入几个空格发现可以验证。检查后发现不输入直接提交是没有以post方式提交,而前端<form>标签已经指明了method='post',提交按钮使用submitfield()做的,那就是submitfield()字段有问题?正常来讲不输入直接提交应该提示用户名不能为空啊?
forms.py
from flask_wtf import FlaskFormfrom wtforms import StringField, BooleanField, PasswordField, SubmitField, widgets
from wtforms.validators import InputRequired
class Loginform(FlaskForm):
username = StringField('用户名', validators=[InputRequired(message='用户名不能为空')])
password = PasswordField('密码', validators=[InputRequired(message="密码要8位")])
remember_me = BooleanField('记住我')
**submit = SubmitField('提交')**
routes.py
@app.route('/login',methods=['GET', 'POST'])def login_validation():
form = Loginform()
if request.method == 'post':
print("ok")#没有打印出来过
if form.validate_on_submit():
flash('用户登录的用户名是:{} , 是否记住我:{}'.format(
form.username.data, form.remember_me.data))
return redirect('/index')
else:
print(form.errors)
return render_template('login.html',title='登录', form=form)
else:
print("提交错误")
return render_template('login.html', title='登录', form=form)
login.html
{% block content %} <h1>登 录</h1>
<form action="/login" **method="post"**>
**{{ form.hidden_tag() }}**
<p>
{{ form.username.label }}<br>
{{ form.username(size=32) }}<br>
{% for error in form.username.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
</p>
<p>
{{ form.password.label }}<br>
{{ form.password(size=32) }}<br>
{% for error in form.password.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
</p>
<p>{{ form.remember_me }} {{ form.remember_me.label }}</p>
<p>**{{ form.submit() }}**</p>
回答:
class Loginform(FlaskForm): username = StringField('用户名', validators=[InputRequired(message='用户名不能为空')])
password = PasswordField('密码', validators=[InputRequired(message="密码要8位")])
remember_me = BooleanField('记住我')
**submit = SubmitField('提交')**
这段代码里的 username = StringField('用户名', validators=[InputRequired(message='用户名不能为空')])
明确的告诉你 username 也就是用户名的输入框必须得有字符,不能为空。
以上是 flask wtform里的submitfield()字段不好使? 的全部内容, 来源链接: utcz.com/a/160823.html