Почему после ввода логина я сразу получаю запрос POST? - PullRequest
0 голосов
/ 16 июня 2019

Я создал «LoginForm», который наследуется от FlaskForm, и когда я пытался зайти на сайт входа, он сразу же входит в метод validate_on_submit () или is_Submitted (), ничего не делая на сайте. Похоже, сайт генерирует POST-запрос, но я не знаю почему.

Сначала я проверил validate_on_submit (), затем я попробовал is_submitted ().

@app.route("/login", methods=['POST','GET'])
def login():
    form = LoginForm()
    if form.is_submitted():
        return "in if"
    else:
        return "in else"
    return render_template("login.html", form=form)
 <body>
  <div class="content-section">
        <form method="POST" action="">
        {{ form.hidden_tag() }}
          <h1 class="h3 mb-3 font-weight-normal">Login</h1>
          <form class="form-group">
            {{ form.username.label(class="form-control") }}
            {{ form.username(class="form-control") }}
          </form>
          <form class="form-group">
            {{ form.password.label(class="form-control") }}
            {{ form.password(class="form-control") }}
          </form>
          <div class="checkbox mb-3">
      </div>
          <div class="form-group">
            {{ form.submit(class="btn btn-outline-info") }}
          </div>
     </form>
    </div>
  </body>
class LoginForm(FlaskForm):
    username = StringField('Username',
                        validators=[DataRequired()])
    password = StringField('Password',
                           validators=[DataRequired()])
    submit = SubmitField('Login')

прямо сейчас, когда я вхожу в localhost: 5000 / login, он мгновенно перенаправляет меня на сайт с заявлением «в другом». Я хочу отправить форму после того, как я поместил в нее некоторые данные

1 Ответ

1 голос
/ 16 июня 2019

Вам нужно заключить код в if request.method == 'POST':

@app.route("/login", methods=['POST','GET'])
def login():
    form = LoginForm()
    if request.method == 'POST':
       if form.is_submitted():
          return "in if"
       else:
          return "in else"
    return render_template("login.html", form=form)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...