@Kekatoz

Где ошибка в коде?

Код во фласке:

@app.route('/login/', methods=['post', 'get'])
def login():
    message = ''
    if request.method == 'POST':
        username = request.form.get('username')  # запрос к данным формы
        password = request.form.get('password')

    if username == 'root' and password == 'pass':
        message = "Correct username and password"
    else:
        message = "Wrong username or password"

    return render_template('login.html', message=message)


код в html:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>

    {

    {% if message %}
        <p>{
            { message }}</p>
    {

    {% endif %}

    <form action="" method="post">
        <p>
	    <label for="username">Username</label>
	    <input type="text" name="username">
	</p>
	<p>
	    <label for="password">Password</label>
	    <input type="password" name="password">
	</p>
	<p>
	    <input type="submit">
	</p>
    </form>

</body>
</html>


выдаёт ошибку UnboundLocalError: local variable 'username' referenced before assignment.
как исправить?
  • Вопрос задан
  • 24 просмотра
Решения вопроса 1
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
У тебя "проверка" пользователя должна быть в блоке if:
if request.method == 'POST':
    username = request.form.get('username')  # запрос к данным формы
    password = request.form.get('password')

    if username == 'root' and password == 'pass':
        message = "Correct username and password"
    else:
        message = "Wrong username or password"

Потому что если метод запроса не POST, то переменные username и password созданы не будут, но ты к ним пытаешься обратиться.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы