Strange TypeError: функция либо вернула None, либо завершилась без оператора return. - PullRequest
0 голосов
/ 06 августа 2020

Я отправляю электронное письмо для восстановления пароля пользователя, и когда пользователь нажимает на ссылку, он может написать новый пароль. Это функция, запущенная в Flask:

@app.route("/forgotT/<tokenn>", methods=["GET", "POST"])
def reset_password(tokenn):
    if request.method == "POST":
        email = s.loads(tokenn, max_age=86400)
        user = User.query.filter_by(email=email).first()
        if request.form.get("newpa") != request.form.get("confirmpa"):
            flash("Passwords dont match")
            return render_template("forgotT.html")
        else:
            newpassword=generate_password_hash(request.form.get("newpa"))
            user.password = newpassword
            db.session.commit()
            flash("Password changed")
            return render_template("login.html")

Теперь проблема в том, что, когда я впервые ввожу ссылку и пытаюсь изменить свой пароль, я получаю ошибку этого типа, но если я затем введите ссылку еще раз и попробуйте сменить пароль, пароль меняется без проблем. Есть идеи, почему это могло происходить?

1 Ответ

0 голосов
/ 06 августа 2020

Ваш маршрут принимает 2 метода: GET & POST .

В случае GET ваш if оператор False и ничего не возвращается, вызывает ошибку .

В случае POST все работает нормально, так как вы всегда верни что-нибудь.

...