Вы уже понимаете базовые конструкции Python, знакомы с тегами и структурой веб-страниц HTML и хотите разрабатывать веб-приложения? Самое время знакомиться с Flask!
Что такое Flask?
Flask — микрофреймворк для разработки несложных сайтов на Python. Почему «микро»? Flask предоставляет программистам набор базовых инструментов. Все дополнительные возможности реализуются с помощью расширений и плагинов.
Особенности Flask
- Минимализм. Flask предлагает довольно компактный набор инструментов для разработки сайтов, что делает его идеальным фреймворком для начинающих разработчиков.
- Гибкость. Flask не устанавливает жесткие правила относительно структуры и архитектуры новых приложений.
- Расширяемость. С помощью плагинов в Flask можно интегрировать любые необходимые функции. В нём можно делать несложные сайты со статическим контентом либо использовать его на крупных проектах.
- Связь с базами данных. Flask-приложения можно связывать с различными базами для работы с датасетами. Решение позволяет читать, записывать и удалять информацию. Настройка данной связи потребует интеграции библиотек SQLAlchemy или Flask-SQLAlchemy.
- Микроподход. Flask позволяет максимально быстро делать веб-приложения на базе одного файла с минимальной функциональностью.
- Тестирование. Проверку и отладку решений Flask осуществляет с помощью фреймворка pytest.
- Профессиональное комьюнити и служба поддержки. Flask популярен среди программистов. Он был создан в 2010 году и за эти годы собрал вокруг себя большое сообщество Flask-разработчиков, всегда готовых помочь начинающим. А еще у этого фреймворка обширная база доступных обучающих ресурсов.
Установка Flask и создание базового приложения
Перед установкой Flask необходимо установить Python с менеджером пакетов PIP для управления сторонними библиотеками.
Установка
Для установки фреймворка Flask и необходимых зависимостей используйте команду $ pip install Flask.
Проверить работу фреймворка можно с помощью команды pip show flask или строки import flask в Python-файле. После установки фреймворка можно приступать к созданию приложения.
Для примера разработаем простое приложение для вывода приветствия на главный экран.
Создание приложения
Процесс можно уложить в три несложных шага:
- Создание новой папки для проекта.
- Создание основного файла приложения — Python-файл app.py — внутри папки проекта.
- Написание кода в текстовом редакторе файла. Он будет выводить стандартную фразу Hello, World! в браузере. На практике код будет выглядеть так:
**from** flask **import** Flask
app = Flask**(**__name__**)**
@app.route**(**"/"**)**
**def** hello_world**():**
**return** "Hello, World!"
if name == 'main':
app.run()
Основные инструменты Flask
Уникальность Flask заключается в возможности писать веб-приложения на базе минимального набора инструментов. Рассмотрим три основных элемента фреймворка: построение маршрутов, обработка шаблонов Jinja2 и инструментарий для работы с WSGI Werkzeug.
Маршрутизация
Маршрутизация во Flask определяет, как ваш сайт будет реагировать на разные URL и какие страницы будет отображать. Для этого используется декоратор route().
Пример:
@app.route('/about')
**def** about():
**return** 'This is the about page'
В этом примере мы увидим сообщение This is the about page при переходе по адресу http://127.0.0.1:5000/about.
Шаблонизатор Jinja2
Flask формирует веб-страницы через шаблоны — HTML-страницы, куда передаются данные с бэкенда. К ним же подключают CSS-фреймворки и JS-скрипты. Шаблонами управляет обработчик Jinja2 — набор инструкций для создания условий, наследований, блоков, циклов и макросов. Он помогает автоматизировать процесс создания HTML-шаблонов для работы со сложными данными.
Главные преимущества Jinja2:
- Самостоятельная обработка контента без обращения к бэкенду.
- Наследование стилей и дизайна базового шаблона. Дочерние шаблоны просто дополняют его собственным контентом.
Пример шаблона:
import jinja2
environment = jinja2.Environment()
template = environment.from_string("Hello, {{ name }}!")
template.render(name="World")
Пример вывода:
'Hello, World!'
Werkzeug
Этот сервис — комплексная библиотека протоколов взаимодействия Python c веб-серверами (WSGI). Эти протоколы реализуют запросы, объекты ответов и функции разрабатываемых приложений.
На курсе «Python: веб-разработка (Flask)» вы подробно изучите функциональность фреймворка Flask, ознакомитесь с его наиболее популярными расширениями и научитесь создавать на нём несложные сайты.