首页 > 解决方案 > Flask 表单未在提交时发布

问题描述

我正在尝试修改引导模板的联系表单以使用我创建的 Flask 表单。但是,在填写表单并提交时,我在后端没有看到任何 POST 请求。

我尝试修改表单,例如更改输入的名称,这似乎解决了其他问题。仔细检查烧瓶表单示例并将其发布的端点更改为仅查看 POST 请求。两者都没有解决问题。

烧瓶代码:

page = Blueprint('page', __name__, template_folder='templates')

@page.route('/', methods=['GET', 'POST'])
def home():
    form = ContactForm()
    if form.validate_on_submit():
        print("FORM POSTED!")
        return "FORM POSTED"
    return render_template("page/index.html", form=form)

烧瓶形式:

from flask_wtf import Form
from wtforms import TextAreaField
from wtforms_components import EmailField
from wtforms.validators import DataRequired, Length


class ContactForm(Form):
    email = EmailField('email',
                       [DataRequired(), Length(3, 254)])
    message = TextAreaField('message',
                            [DataRequired(), Length(1, 8192)])

HTML 表单模板:

  <form id="contactForm" name="contactform" method="post" action="{{ url_for('page.home') }}">
            {{ form.hidden_tag() }}
            {{ form.csrf_token }}
            <div class="row">
              <div class="col-md-6 offset-md-3">
                <div class="form-group">
                  {{ form.email.label }}
                  {{ form.email(class_='form-control', placeholder="Your Email") }}

                  <p class="help-block text-danger"></p>
                </div>
              </div>
            </div>
            <div class="row">
              <div class="col-md-6 offset-md-3">
                <div class="form-group">
                  {{ form.message.label }}
                  {{ form.message(class_='form-control', placeholder="Your Message") }}
                  <p class="help-block text-danger"></p>
                </div>
              </div>
            </div>
              <div class="clearfix"></div>
              <div class="col-lg-12 text-center">
                <div id="success"></div>
                <button id="sendMessageButton" class="btn btn-primary btn-xl text-uppercase" type="submit">Send Message</button>
              </div>
            </div>
          </form>


我希望这需要填写电子邮件和文本区域并提交给烧瓶应用程序。然而什么都没有发生。从未发送过任何 POST。

标签: pythonflaskflask-wtforms

解决方案


推荐阅读