Лучшие фреймворки для веб-разработки на Python для начинающих | OTUS
⚡ Открываем подписку на курсы!
Проходите параллельно 3 онлайн-курса в месяц по цене одного.
Подробнее

Курсы

Программирование
Flutter Mobile Developer Подготовка к сертификации Oracle Java Programmer (OCAJP)
-8%
Алгоритмы и структуры данных
-12%
Web-разработчик на Python
-11%
Архитектура и шаблоны проектирования
-14%
JavaScript Developer. Basic Супер-интенсив «СУБД в высоконагруженных системах»
-18%
iOS-разработчик. Базовый курс
-23%
Разработчик на Spring Framework
-23%
Python Developer. Basic
-16%
C# ASP.NET Core разработчик
-18%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
JavaScript Developer. Professional
-9%
Android Developer. Basic
-10%
Java Developer. Professional Разработчик C# AWS для разработчиков Highload Architect Reverse-Engineering. Professional CI/CD Vue.js разработчик Agile Project Manager Нереляционные базы данных Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Advanced Fullstack JavaScript developer
Инфраструктура
PostgreSQL
-10%
IoT-разработчик
-12%
Administrator Linux. Professional
-11%
Базы данных
-19%
Administrator Linux.Basic
-18%
Супер-интенсив «СУБД в высоконагруженных системах»
-18%
Супер-интенсив "SQL для анализа данных"
-16%
Software Architect
-12%
Сетевой инженер AWS для разработчиков Highload Architect Разработчик голосовых ассистентов и чат-ботов Внедрение и работа в DevSecOps Администратор Linux. Виртуализация и кластеризация Нереляционные базы данных Супер-практикум по использованию и настройке GIT
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Лучшие фреймворки для веб-разработки на 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 комментариев
Для комментирования необходимо авторизоваться