0

我正在编写一个类似于博客的 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 页面,但单击按钮什么也不做。我完全被难住了。

4

0 回答 0