Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3283657
А
Аноним
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>

Если нужно помочь с более сложным варианта или другим языком, скажите!