Вы уже понимаете базовые конструкции Python, знакомы с тегами и структурой веб-страниц HTML и хотите разрабатывать веб-приложения? Самое время знакомиться с Flask!
Flask — микрофреймворк для разработки несложных сайтов на Python. Почему «микро»? Flask предоставляет программистам набор базовых инструментов. Все дополнительные возможности реализуются с помощью расширений и плагинов.
Перед установкой Flask необходимо установить Python с менеджером пакетов PIP для управления сторонними библиотеками.
Для установки фреймворка Flask и необходимых зависимостей используйте команду $ pip install Flask.
Проверить работу фреймворка можно с помощью команды pip show flask или строки import flask в Python-файле. После установки фреймворка можно приступать к созданию приложения.
Для примера разработаем простое приложение для вывода приветствия на главный экран.
Процесс можно уложить в три несложных шага:
**from** flask **import** Flask
app = Flask**(**__name__**)**
@app.route**(**"/"**)**
**def** hello_world**():**
**return** "Hello, World!"
if name == 'main':
app.run()
Уникальность 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.
Flask формирует веб-страницы через шаблоны — HTML-страницы, куда передаются данные с бэкенда. К ним же подключают CSS-фреймворки и JS-скрипты. Шаблонами управляет обработчик Jinja2 — набор инструкций для создания условий, наследований, блоков, циклов и макросов. Он помогает автоматизировать процесс создания HTML-шаблонов для работы со сложными данными.
Главные преимущества Jinja2:
Пример шаблона:
import jinja2
environment = jinja2.Environment()
template = environment.from_string("Hello, {{ name }}!")
template.render(name="World")
Пример вывода:
'Hello, World!'
Этот сервис — комплексная библиотека протоколов взаимодействия Python c веб-серверами (WSGI). Эти протоколы реализуют запросы, объекты ответов и функции разрабатываемых приложений.
На курсе «Python: веб-разработка (Flask)» вы подробно изучите функциональность фреймворка Flask, ознакомитесь с его наиболее популярными расширениями и научитесь создавать на нём несложные сайты.