我有一个有效的Flask表单,可以在正确填写每个字段时发布。那里没有问题。但是,如果不满足某些条件(例如未提供用户名),则表单不会发布请求。
所以我写了一个可行的例子。最典型的问题是:为什么该段包含
此段从未达到!
从不显示???
当表格未正确填写且我提交时,没有帖子发回服务器!!!如果正确输入所有内容,则浏览器将发布该表单。
(我很确定这不是因为不会抛出表格错误。
在与main.py相关的模板文件中运行register.html,运行main.py可以自己看看。
顺便说一句,即使它正在工作,否则我需要显示“段落”以使用引导程序显示样式
正确!)
谢谢!
main.py
from flask import Flask, render_template, flash
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField, BooleanField
from wtforms.validators import DataRequired, Length, Email, EqualTo
app = Flask(__name__)
app.config['SECRET_KEY'] = 'ca4532af545bc4e254e6b45bdf96d7b6'
class RegistrationForm(FlaskForm):
username = StringField('Username', validators=[DataRequired(), Length(min=2, max=20)])
email = StringField('Email', validators=[DataRequired(), Email()])
password = PasswordField('Password', validators=[DataRequired()])
confirm_password = PasswordField('Confirm Password',
validators=[DataRequired(), EqualTo('password')])
submit = SubmitField('Sign Up')
@app.route('/', methods=['GET', 'POST'])
def register():
form = RegistrationForm()
if form.validate_on_submit():
return "Submitted"
return render_template('register.html', form=form)
if __name__ == '__main__':
app.run(debug=True, port=5000)
register.html
<!DOCTYPE html>
<html>
<head></head>
<body>
<form action="" method="POST">
{{ form.hidden_tag() }}
<fieldset class="form-group">
<div class="form-group">
{{ form.username.label() }}
{% if form.username.errors %}
{{ form.username() }}
<div class="invalid-feedback">
<p>This paragraph is never reached!!!</p>
{% for error in form.username.errors %}
<span>{{ error }}</span>
{% endfor %}
</div>
{% else %}
{{ form.username() }}
{% endif %}
</div>
<div class="form-group">
{{ form.email.label() }}
{% if form.email.errors %}
{{ form.email() }}
<div class="invalid-feedback">
{% for error in form.email.errors %}
<span>{{ error }}</span>
{% endfor %}
</div>
{% else %}
{{ form.email() }}
{% endif %}
</div>
<div class="form-group">
{{ form.password.label() }}
{% if form.password.errors %}
{{ form.password() }}
<div class="invalid-feedback">
{% for error in form.password.errors %}
<span>{{ error }}</span>
{% endfor %}
</div>
{% else %}
{{ form.password() }}
{% endif %}
</div>
<div class="form-group">
{{ form.confirm_password.label() }}
{% if form.confirm_password.errors %}
{{ form.confirm_password() }}
<div class="invalid-feedback">
{% for error in form.confirm_password.errors %}
<span>{{ error }}</span>
{% endfor %}
</div>
{% else %}
{{ form.confirm_password() }}
{% endif %}
</div>
</fieldset>
<div class="form-group">
{{ form.submit() }}
</div>
</form>
</body>
</html>