Как отобразить вспыхивающее сообщение, когда атрибут действия формы указывает страницу? - PullRequest
0 голосов
/ 27 мая 2020

Хорошо, я новичок в 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>
...