flask wtform里的submitfield()字段不好使?

flask  wtform里的submitfield()字段不好使?

写了表单验证的代码,验证时发现不输入直接按提交按钮表单无法验证??后来我试着在用户名和密码处输入几个空格发现可以验证。检查后发现不输入直接提交是没有以post方式提交,而前端<form>标签已经指明了method='post',提交按钮使用submitfield()做的,那就是submitfield()字段有问题?正常来讲不输入直接提交应该提示用户名不能为空啊?

forms.py

from flask_wtf import FlaskForm

from 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

回到顶部