Flask – это легковесный веб-фреймворк для приложений на основе WSGI в Python, который стал популярным выбором среди разработчиков, стремящихся создать масштабируемые и безопасные веб-приложения. Одной из особенностей Flask является возможность отображения HTML-содержимого. В этой статье рассмотрим, как работать с представлениями в Flask и эффективно выводить данные в шаблоны, а также представим простой пример мини-проекта для иллюстрации этих концепций.
Понимание представлений в Flask
Функция представления в Flask – это функция Python, которая сопоставляется с одним или несколькими URL-адресами маршрутов. Она обрабатывает бизнес-логику вашего приложения и решает, какие данные будут отображаться на странице. Когда клиент запрашивает URL, Flask сопоставляет URL с функцией представления, выполняет ее, а затем рендерит ответ клиенту.
Отображение шаблонов
Для отображения шаблонов Flask использует движок шаблонов Jinja2. Jinja2 позволяет легко интегрировать динамические данные в HTML-шаблоны. Рендеринг шаблона означает создание HTML-файла из файла шаблона путем замены переменных и выполнения инструкций для создания итогового документа.
Настройка среды
Чтобы начать работать с Flask и отображением шаблонов, вам нужно настроить проект Flask. Убедитесь, что Python установлен на вашей системе, затем установите Flask с помощью pip:
pip install Flask
Создание простого приложения Flask
- Инициализация вашего приложения Flask: создайте файл с именем app.py и инициализируйте ваше приложение Flask:
from flask import Flask, render_template app = Flask(__name__)
- Определение функции представления: создайте функцию представления и сопоставьте ее с URL:
@app.route('/') def home(): return render_template('index.html', title='Главная страница')
- Создание шаблонов: создайте папку с именем templates в директории вашего проекта. Внутри этой папки создайте HTML-файл с именем index.html. Здесь вы определите HTML-структуру вашей главной страницы.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{{ title }}</title> </head> <body> <h1>Добро пожаловать в мини-проект на Flask!</h1> </body> </html>
Синтаксис {{ title }} является примером переменной шаблона Jinja2. Она будет заменена на фактический заголовок, переданный из функции представления.
Запуск вашего приложения Flask
Для запуска введите в терминале:
flask run
Перейдите по адресу http://127.0.0.1:5000/ в вашем веб-браузере, и вы должны увидеть вашу главную страницу с сообщением «Добро пожаловать в мини-проект на Flask!»
Реализация мини-проекта: список дел
Давайте расширим пример, создав простое приложение для списка задач. Это проиллюстрирует, как передавать и отображать более сложные структуры данных (например, списки) в ваших шаблонах.
- Обновление функции представления: измените ваш app.py, чтобы включить список задач:
@app.route('/todos') def todos(): tasks = ['Изучить Flask', 'Построить проект', 'Изучить дополнительные возможности'] return render_template('todos.html', tasks=tasks)
- Создание шаблона списка задач: в папке templates создайте новый файл с именем todos.html. Здесь мы будем перебирать задачи и отображать их:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Список дел</title> </head> <body> <h1>Ваш список дел</h1> <ul> {% for task in tasks %} <li>{{ task }}</li> {% endfor %} </ul> </body> </html>
Заключение
Работа с представлениями и отображение в шаблонах в Flask позволяют разработчикам с легкостью создавать динамичные и интерактивные веб-приложения. Следуя принципам, изложенным в этой статье, и исследуя пример мини-проекта, вы можете начать создавать свои собственные приложения на Flask.