Хорошо, я новичок в Flask и прочитал здесь много ответов, но не могу найти то, что ищу.
У меня есть страница входа, и когда форма успешно отправлена он должен перенаправить на страницу индекса, если форма отправлена, с мигающим сообщением, указанным в моем маршруте входа.
Он ведет себя правильно, когда я оставляю свой атрибут действия пустым в логине. html вот так:
<form action="" method="POST">
{{ form.csrf_token }}
<p>{{ form.username.label }}<br>
{{ form.username(size=32) }}
</p>
<p>{{ form.password.label }}<br>
{{ form.password(size=32) }}
</p>
<p>{{ form.remember_me() }}
{{ form.remember_me.label }}
</p>
<p>
{{ form.submit() }}
</p>
</form>
Но как только я укажу страницу, на которую хочу передать данные быть отправлено, оно не отображает sh сообщение:
<form action="/index" method="POST">
Почему мое сообщение sh не отображается, когда я указываю / index в действии? Любая помощь в правильном направлении была бы замечательной.
routes.py
from app import app # import app variable from the app package
from flask import render_template, flash, redirect
from app.forms import RegistrationForm
@app.route("/login", methods=["GET", "POST"])
def login():
form = RegistrationForm()
if form.validate_on_submit():
flash('Registration requested from user: {} and remember_me: {}'.format(
form.username.data, form.remember_me.data
))
print("True")
return redirect("/index")
print("False")
return render_template("login.html", form=form)
@app.route("/index", methods=["GET", "POST"])
def index():
return render_template("index.html")
forms.py
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, BooleanField, SubmitField, validators
class RegistrationForm(FlaskForm):
username = StringField('Username', [validators.DataRequired()])
password = PasswordField('Password', [validators.DataRequired()])
remember_me = BooleanField('Remember Me')
submit = SubmitField("Register")
логин. html
<form action="/index" method="POST">
{{ form.csrf_token }}
<p>{{ form.username.label }}<br>
{{ form.username(size=32) }}
</p>
<p>{{ form.password.label }}<br>
{{ form.password(size=32) }}
</p>
<p>{{ form.remember_me() }}
{{ form.remember_me.label }}
</p>
<p>
{{ form.submit() }}
</p>
</form>
индекс. html
<body>
<h2>Hello Index Page</h2>
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for message in messages %}
{{ message }}
{% endfor %}
{% endif %}
{% endwith %}
</body>