用wtforms生成的烧瓶按钮不会触发POST请求

时间:2019-05-01 16:26:42

标签: python flask flask-wtforms

我正在编写一个类似于博客的Flask应用程序。我使用wtforms生成了文本框,但是每当我单击按钮保存文本时,都不会发生任何事情。我没有错误。

我尝试将打印语句添加到我的代码中,并且一切正常,除了Flask没有收到POST请求。单击按钮绝对没有任何作用。

这是端点的代码。我在if request.method之后添加了print()语句,但是没有打印出任何内容,因此我假设它没有收到POST请求:

@app.route("/newtext", methods=["GET", "POST"])
@login_required
def newtext():
    form = NewPost()
    if request.method == "POST" and form.validate():
        new_post = Texts(user_id=current_user.id, title=form.title.data, content=form.content.data)
        db.session.add(new_post)
        db.session.commit()
        new_click = UserActions(user_id=current_user.id, action=4)
        db.session.add(new_click)
        db.session.commit()
        last_text = db.session.query(Texts).order_by(Texts.id.desc()).first()
        text_id = last_text.id
        text_version = TextVersions(content=form.content.data, user_id=current_user.id, text_id=text_id)
        db.session.add(text_version)
        db.session.commit()
        plaintext = BeautifulSoup(form.content.data)
        text_summary = Grammar.summary(plaintext.get_text())
        return render_template("summary.html", text_id=text_id, text_summary=text_summary)
    else:
        return render_template("basiceditor.html", form=form)

这是网页的html代码。它呈现正常(GET方法显然可用),但是该按钮不起作用:

<div class="container mt-5">
    <div class="content-section">
        <form method="POST" action="/newtext">
            {{ form.hidden_tag() }}
            <fieldset class="form-group">
                <legend class="border-bottom mb-4">{{ legend }}</legend>
                <div class="form-group">
                    {{ form.title.label(class="form-control-label") }}
                    {% if form.title.errors %}
                        {{ form.title(class="form-control form-control-lg is-invalid") }}
                        <div class="invalid-feedback">
                            {% for error in form.title.errors %}
                                <span>{{ error }}</span>
                            {% endfor %}
                        </div>
                    {% else %}
                        {{ form.title(class="form-control form-control-lg") }}
                    {% endif %}
                </div>
                <div class="form-group">
                    {{ form.content.label(class="form-control-label") }}
                    {% if form.content.errors %}
                        {{ form.content(class="form-control form-control-lg is-invalid") }}
                        <div class="invalid-feedback">
                            {% for error in form.content.errors %}
                                <span>{{ error }}</span>
                            {% endfor %}
                        </div>
                    {% else %}
                        {{ form.content(class="form-control form-control-lg", id="controleditor") }}
                    {% endif %}
                </div>
            </fieldset>
            <div class="form-group">
                {{ form.submit(class="btn btn-success") }}
            </div>
        </form>
    </div>
</div>

该应用程序未报告任何错误。它应该将文本保存到数据库中,并将该人发送到summary.html页面,但是单击该按钮不会执行任何操作。我完全迷住了。

0 个答案:

没有答案