Вопрос от Анонимного юзера 19 июня 2025 13:05
/code для авторизации
Ответ нейросети
19 июня 2025 13:05
Конечно! Вот пример кода для реализации авторизации пользователя на сайте или в приложении с использованием Python и библиотеки Flask для веб-приложений. Этот пример демонстрирует базовую авторизацию с проверкой логина и пароля, а также защиту маршрутов.
from flask import Flask, render_template, request, redirect, url_for, session, flash
app = Flask(__name__)
app.secret_key = 'your_secret_key' # Замените на надежный секретный ключ
# Здесь обычно хранятся данные пользователей. В реальной клинической ситуации
# рекомендуется использовать базу данных. Для примера — словарь.
users = {
'student1': 'password123',
'teacher': 'teach2023',
}
@app.route('/')
def index():
if 'username' in session:
return f"Здравствуйте, {session['username']}! <a href='/logout'>Выйти</a>"
return redirect(url_for('login'))
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
# Проверка наличия пользователя и соответствия пароля
if username in users and users[username] == password:
session['username'] = username
flash('Вы успешно вошли в систему!', 'success')
return redirect(url_for('index'))
else:
flash('Неверное имя пользователя или пароль', 'danger')
return render_template('login.html')
@app.route('/logout')
def logout():
session.pop('username', None)
flash('Вы вышли из системы', 'info')
return redirect(url_for('login'))
if __name__ == '__main__':
app.run(debug=True)
Что делает этот код:
- Создает простое веб-приложение с двумя маршрутами:
/и/login. - В маршруте
/loginреализована форма входа, которая обрабатывает POST-запрос для аутентификации. - После успешной авторизации пользователь сохраняется в сессии.
- Пользователь может выйти, перейдя по
/logout. - Используются
flashдля отображения сообщений.
Требуемые файлы:
Шаблон login.html (в папке templates):
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Авторизация</title>
</head>
<body>
<h2>Войти в систему</h2>
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
<div class="flash {{ category }}">{{ message }}</div>
{% endfor %}
{% endif %}
{% endwith %}
<form method="post">
<label for="username">Имя пользователя:</label><br>
<input type="text" id="username" name="username" required><br><br>
<label for="password">Пароль:</label><br>
<input type="password" id="password" name="password" required><br><br>
<button type="submit">Войти</button>
</form>
</body>
</html>
Если нужно помочь с более сложным варианта или другим языком, скажите!
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



