Создание простой страницы входа с использованием Flask

0

Создание простой страницы входа с использованием Flask

Flask — это легкий и гибкий веб-фреймворк для Python, который позволяет быстро создавать веб-приложения. Он предоставляет простой способ создания страниц входа в систему для ваших веб-приложений. В этой статье мы рассмотрим, как создать базовую страницу входа с использованием Flask.

Установка Flask

Перед тем как начать, убедитесь, что у вас установлен Flask. Если нет, вы можете установить его с помощью pip:

pip install Flask

Начало

Давайте начнем с создания основного файла нашего приложения app.py. Вот простой пример того, как это может выглядеть:

from flask import Flask, render_template, request, redirect, url_for

app = Flask(__name__)

# Фиктивная база данных пользователей
users = {'username': 'password'}

@app.route('/')
def index():
    return render_template('index.html')

@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:
            # Аутентификация успешна
            return redirect(url_for('dashboard'))
        else:
            # Аутентификация не удалась
            return render_template('login.html', error='Неверное имя пользователя или пароль')

    # Если это GET-запрос, просто отображаем страницу входа
    return render_template('login.html')

@app.route('/dashboard')
def dashboard():
    return render_template('dashboard.html')

if __name__ == '__main__':
    app.run(debug=True)

HTML-шаблоны

Теперь мы создадим HTML-шаблоны для нашего приложения. Мы создадим три шаблона: index.html для главной страницы, login.html для страницы входа и dashboard.html для панели управления.

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Главная</title>
</head>
<body>
    <h1>Добро пожаловать на главную страницу</h1>
    <a href="{{ url_for('login') }}">Войти</a>
</body>
</html>

login.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Вход</title>
</head>
<body>
    <h1>Вход</h1>
    {% if error %}
        <p style="color: red;">{{ error }}</p>
    {% endif %}
    <form method="post" action="{{ url_for('login') }}">
        <label for="username">Имя пользователя:</label>
        <input type="text" id="username" name="username" required><br>
        <label for="password">Пароль:</label>
        <input type="password" id="password" name="password" required><br>
        <input type="submit" value="Войти">
    </form>
</body>
</html>

dashboard.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Панель управления</title>
</head>
<body>
    <h1>Добро пожаловать в панель управления</h1>
    <a href="{{ url_for('index') }}">На главную</a>
</body>
</html>

Запуск приложения

Теперь мы можем запустить наше приложение. Просто запустите app.py, и ваше веб-приложение будет доступно по адресу http://127.0.0.1:5000/.

python app.py

Таким образом, мы создали динамическую Web-страницу c Python, о чем подробно рассказано в видеокурсе Программирование на Python с Нуля до Гуру.

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

Это основы создания простой страницы входа с использованием Flask. Вы можете расширить этот пример, добавив функции аутентификации и разграничения доступа по мере необходимости для вашего веб-приложения.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.