Я пишу приложение Flask, которое работает как блог.Я сгенерировал текстовые поля с помощью wtforms, но всякий раз, когда я нажимаю на кнопку, чтобы сохранить текст, ничего не происходит.Я не получаю ошибок.
Я попытался добавить операторы print в свой код, и все работает нормально, за исключением того, что Flask не получает запрос POST.Нажатие на кнопку абсолютно ничего не делает.
Это код для конечной точки.Я добавил оператор print () после if request.method, но ничего не распечатал, поэтому я предполагаю, что он не получает запрос 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, но нажатие на кнопку ничего не дает.Я полностью в тупике.