烧瓶无效的表单未提交提交

时间:2019-09-17 23:00:29

标签: python forms post flask python-3.7

我有一个有效的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>

0 个答案:

没有答案