Лучшие фреймворки для веб-разработки на Python для начинающих | OTUS

Лучшие фреймворки для веб-разработки на Python для начинающих

Как известно, Python сегодня используется почти везде, включая веб-разработку. При этом существуют фреймворки, позволяющие буквально за несколько дней «поднять» сайт. Речь идёт о full stack-фреймворках, работающих по принципу «всё включено». И действительно, в них есть всё, что надо для создания полноценного приложения, поэтому вам не придётся искать для каждой подзадачи подходящую библиотеку. В результате собрать готовое и полноценно работающее приложение сможет даже начинающий программист. Как раз о таких фреймворках мы и поговорим в нашей статье.

Django

Высокоуровневый фреймворк, архитектура которого выстроена таким образом, чтобы экономить ваши силы и время, а в итоге — деньги заказчиков. Главные принципы Django-философии — DRY и rapid development, стимулирующие переиспользование кода и снижающие его избыточность.

Особенности: — контроль версий для БД (миграции); — свой движок шаблонов; — ORM; — URL-маршрутизация; — поддержка web-серверов, аутентификации и интернационализации.

Достоинства: — множество библиотек (многое уже написано — только импортируйте); — большое сообщество и исчерпывающая документация (всегда найдёте ответы на свои вопросы и разберётесь в проблеме); — наличие масштабируемости (начав с малого, вы можете существенно расширить проект в случае надобности).

Недостатки: — WebSockets не поддерживается из коробки, следовательно, Django — не лучший вариант для работы в реал-тайме; — недостаточная гибкость (готовые библиотеки — это, разумеется, круто, но гибкость от этого, увы, снижается).

Успешные примеры использования: • https://www.instagram.com/; • https://www.spotify.com/.

Pyramid

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

Особенности: — наличие удобных инструментов для работы со статичными ассетами; — генерация URL; — предикаты и рендереры.

Преимущества: — повышенная гибкость (любой компонент можно заменить); — удобные Ajax-запросы (система декораторов и представлений позволяет отправлять XHR-запросы без особых усилий со стороны разработчика); — поддержка SQLAlchemy (обеспечивает удобство работы с БД даже при сложных запросах).

Недостатки: — на развёртывание и подготовку уходит много времени; — чтобы прочувствовать возможности гибкости фреймворка и эффективно заниматься кастомизацией, поверхностных знаний Pyramid недостаточно; — если речь идёт о простых приложениях, то SQLAlchemy бывает слишком громоздкой.

Успешные примеры использования: • https://www.charte.ca/; • https://www.easyblognetworks.com/; • http://www.substanced.net/.

TurboGears

Опенсорсный фреймворк, обеспечивающий быструю разработку веб-приложений, работающих с данными. Поддерживает SQLAlchemy, WebOb, Genshi, Repoze, поэтому отлично подходит для проектов, требующих хорошей поддержки БД.

Особенности: — поддержка горизонтального секционирования данных; — поддержка MVC-архитектуры и нескольких БД одновременно; — интеграция с JS-библиотекой MochiKit; — ToscaWidgets; — валидация посредством FormEncode; — шаблоны PasteScript.

Достоинства: — хорошая гибкость (подходит как для быстрого прототипирования, так и для крупных проектов); — неплохая расширяемость (вы можете создавать свои плагины либо расширять функциональность имеющихся).

Основной недостаток вытекает из достоинства — возможностей для расширения настолько много, что в них просто запутаться…

Успешные примеры использования: • https://allura.apache.org/; • http://www.umbrellasatkasmisons.com/.

Flask

WSGI-фреймворк, подходящий и для простых, и для сложных сайтов. Совместим со сторонними библиотеками, включает в себя много расширений.

Особенности: — встроены быстрый дебаггер и dev-сервер; — шаблоны Jinja2; — поддерживаются REST-запросы; — обеспечивается совместимость с любой ORM; — безопасные cookies для управления сессией на клиенте; — поддержка unit-тестов; — соответствие WSGI 1.0.

Достоинства: — понятность и минималистичность (в логике работы разобраться несложно); — быстрое прототипирование (инструменты, необходимые для создания прототипа, функционируют непосредственно из коробки).

Что касается недостатков, то Flask считается довольно низкоуровневым фреймворком, то есть требования к уровню разработчика выше, если сравнивать с другими фреймворками из списка. Если хотите сразу делать сайты, не выбирая, что находится под капотом, выбирайте другой инструмент.

Примеры успешного использования: • https://rainist.com/; • https://www.netflix.com/; • https://www.lyft.com/.

Tornado

Это асинхронный фреймворк с неблокирующим обменом данными, что позволяет одновременно поддерживать много пользовательских соединений. Отличный вариант, если надо подолгу поддерживать соединение с каждым пользователем.

Особенности: — собственный механизм аутентификации (но можно подключить и сторонние решения); — поддерживает переводы и локализации; — работает в реал-тайме.

Примеры успешного использования: • https://uploadcare.com/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто