Обложка: Почему вам стоит выбрать фреймворк Flask для своего следующего проекта

Почему вам стоит выбрать фреймворк Flask для своего следующего проекта

Максим Кузнецов
Максим Кузнецов

Senior Python Developer в Akvelon

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

Flask зависит от некоторых внешних библиотек — таких как Werkzeug и Jinja2.

Werkzeug — это инструментарий для WSGI, стандартного интерфейса Python между веб-приложениями и различными серверами. Он предназначен как для разработки, так и развёртывания.

Jinja2 — шаблонизатор:

Пример работы шаблонизатора Jinja2

Пример минимального приложения на Flask «Hello World!»:

Пример Hello World на Flask

Пример приложения с шаблонизатором на Flask:

Пример приложения на Flask

Встроенные фичи

  • Сервер разработки и отладчик
  • Интегрированная поддержка модульного тестирования
  • Отправка запросов RESTful
  • Использование шаблонизатора Jinja2
  • Поддержка безопасных файлов cookie (сеансы на стороне клиента)
  • 100% соответствие WSGI 1.0
  • Unicode
  • Обширная документация
  • Совместимость с Google App Engine
  • Расширения для улучшения желаемых функций

Применение Flask

Сообществом поддерживается серия пакетов-расширений для Flask. Их название обычно начинается с flask-, например, flask-login, flask-sqlalchemy, flask-wtf.

Flask является конструктором, поэтому все дополнительные фичи придётся устанавливать вручную. Фреймворк очень хорошо подходит для небольших проектов, работающих в основном со статическим контентом. Также подходит для создания микросервисов. Из-за отсутствия встроенного ORM позволяет выбрать подходящий под ваши нужды. Де-факто используют SqlAlchemy.

Flask 2.0

С мая 2021 года Flask начал обновляться и внедрять асинхронный режим работы. Синтаксис вы можете увидеть ниже:

from flask import Flask
app = Flask(__name__)
@app.get('/')
async def ping():
    return {'message': 'pong'}

if __name__ == '__main__':
    app.run(host='0.0.0.0')

Когда стоит использовать Flask

  1. Если нужен небольшой бэк.
  2. Если хотите сделать свой pet-проект.
  3. Если вы не знакомы с асинхронностью.
  4. Если хотите получить больше опыта и возможностей для обучения.
  5. Если вам нужно больше контроля над используемыми компонентами.

Полезные ссылки