PyLounge - программирование на Python и всё о IT

Привет! Меня зовут Макс. Я уже долго занимаюсь программированием, в частности программирование на языке Python. Я много чего узнал за это время, и мне есть, чем поделиться со зрителями моего канала. Здесь выходят разнообразные ролики, касающиеся IT-тематики и программирования, которые я делаю в соавторстве с Егором (лучшим голосом России). Подписывайся, будем узнавать что-то новое и работать вместе! Погнали!

Ссылка на запись в реестре (РКН):
knd.gov.ru/license?id=674d784a9d804a279b017231&…

По вопросам сотрудничества Сотрудничества - peoplesdreamer@gmail.com

Хочешь поддержать канал:
Никнейм QIWI Кошелька - PYLOUNGE (qiwi.com/n/PYLOUNGE)
Donation Alerts - www.donationalerts.com/r/pylounge


PyLounge - программирование на Python и всё о IT

Зачем нужен новый REST API для Django?

Источник: t.me/opensource_findings/938

Последний месяц я крайне увлечен созданием github.com/wemake-services/django-modern-rest
(Кстати, у нас уже >200 звезд и 26 контрибьюторов при 0 релизов)

Ключевой вопрос – зачем? Что будет нового?

Во-первых, я крайне сильно люблю Django. Основная причина – под него есть буквально любые библиотеки. Все то, что в FastAPI нужно героически писать руками – в джанге уже давно есть и работает.
Но, есть несколько основных причин, почему люди думают, что не любят джангу:
1. DRF, тут без лишних слов – он ужасен. Нет типизации, нет async, очень сложно работать с ним в сложных случаях
2. Многие считают, что джанга - сложная. Однако, она как FastAPI или Litestar может спокойно уместиться в один файл: django-modern-rest.readthedocs.io/en/latest/pages/…
3. Есть критика за архитектуру: тут нечего особо даже комментировать. На любом фреймворке можно писать хорошо, на любом можно писать плохо. Слой фреймворка очень тонкий
4. Медленный. А вот тут остановимся подробнее.

На скринах выше можно сравнить, что с django-modern-rest, без нескольких будущих оптимизаций (привет cython и rust!), голая джанга начинает выглядеть не так уж и медленнее FastAPI: бенчи.

Во-вторых, Django на длительный срок был в плену DRF. Который морально устарел еще в середине десятых.
Потом появилась django-ninja, которая хоть и намного лучше, но все равно не решает главную задачу: интеграция с существующими тулами. Конечно, если затащить FastAPI дизайн в чужой мир, то ничего не будет нормально работать 🌚️️

Вот такие проблемы мы решаем.

Одной строкой:
- Супер строгая OpenAPI схема и валидация при разработке, что мы ее соблюдаем
- Полная типизация всего
- Нормальный способ создания АПИ, без god-functions a-la FastAPI
- async без sync_to_async
- Быстро: msgspec для парсинга json (самый быстрый способ в питоне), практически 0 работы в рантайме (все делаем при импорте), оптимизации роутера (быстрее дефолтного в 51 раз)
- Пидантик, msgspec, или любой другой способ выражать модели. Хоть adaptix
- Полная поддержка всего существующего в Django. От декораторов до миддлварь (с полной валидацией и OpenAPI схемой!)
- OpenAPI схема из коробки
- Удобное тестирование с polyfactory
- property-based тесты вашего АПИ одной командой благодаря schemathesis

Что еще будет:
- RSGI (да, на #rust скорее всего) под granian, в теории можем побить FastAPI после такого
- SSE с автоматической OpenAPI спекой и умной валидацией схемы
- JWT или любая другая аутентификация
- Какие-то части (скорее всего валидацию) мы компильнем cython, чтобы было еще быстрее

Modern? Modern!
Осталось дождаться. Релиз скоро!
И еще скоро будут несколько новых видео.

Мы регулярно постим задачки в @opensource_findings_python, так что можно нам помочь.
А если кто хочет мне закинуть на развитие опенсорса (за написание 32500 строк кода за 2 недели), то мой бусти открыт: boosty.to/sobolevn
Ну и звезды можно ставить, конечно же. Там посмотрите, какие люди нас уже советуют.

Большое спасибо Александру, Алексею, Роману, Максиму и всем остальным за неоценимую помощь. Пацаны, без вас никак! Лучшее сообщество!

Обсуждение: а чего бы вам хотелось в modern rest фреймворке? Чего сильно не хватает сейчас?

1 month ago | [YT] | 10

PyLounge - программирование на Python и всё о IT

Зачем нужен новый REST API для Django?

Источник: t.me/opensource_findings/938

Последний месяц я крайне увлечен созданием github.com/wemake-services/django-modern-rest
(Кстати, у нас уже >200 звезд и 26 контрибьюторов при 0 релизов)

Ключевой вопрос – зачем? Что будет нового?

Во-первых, я крайне сильно люблю Django. Основная причина – под него есть буквально любые библиотеки. Все то, что в FastAPI нужно героически писать руками – в джанге уже давно есть и работает.
Но, есть несколько основных причин, почему люди думают, что не любят джангу:
1. DRF, тут без лишних слов – он ужасен. Нет типизации, нет async, очень сложно работать с ним в сложных случаях
2. Многие считают, что джанга - сложная. Однако, она как FastAPI или Litestar может спокойно уместиться в один файл: django-modern-rest.readthedocs.io/en/latest/pages/…
3. Есть критика за архитектуру: тут нечего особо даже комментировать. На любом фреймворке можно писать хорошо, на любом можно писать плохо. Слой фреймворка очень тонкий
4. Медленный. А вот тут остановимся подробнее.

На скринах выше можно сравнить, что с django-modern-rest, без нескольких будущих оптимизаций (привет cython и rust!), голая джанга начинает выглядеть не так уж и медленнее FastAPI: бенчи.

Во-вторых, Django на длительный срок был в плену DRF. Который морально устарел еще в середине десятых.
Потом появилась django-ninja, которая хоть и намного лучше, но все равно не решает главную задачу: интеграция с существующими тулами. Конечно, если затащить FastAPI дизайн в чужой мир, то ничего не будет нормально работать 🌚️️

Вот такие проблемы мы решаем.

Одной строкой:
- Супер строгая OpenAPI схема и валидация при разработке, что мы ее соблюдаем
- Полная типизация всего
- Нормальный способ создания АПИ, без god-functions a-la FastAPI
- async без sync_to_async
- Быстро: msgspec для парсинга json (самый быстрый способ в питоне), практически 0 работы в рантайме (все делаем при импорте), оптимизации роутера (быстрее дефолтного в 51 раз)
- Пидантик, msgspec, или любой другой способ выражать модели. Хоть adaptix
- Полная поддержка всего существующего в Django. От декораторов до миддлварь (с полной валидацией и OpenAPI схемой!)
- OpenAPI схема из коробки
- Удобное тестирование с polyfactory
- property-based тесты вашего АПИ одной командой благодаря schemathesis

Что еще будет:
- RSGI (да, на #rust скорее всего) под granian, в теории можем побить FastAPI после такого
- SSE с автоматической OpenAPI спекой и умной валидацией схемы
- JWT или любая другая аутентификация
- Какие-то части (скорее всего валидацию) мы компильнем cython, чтобы было еще быстрее

Modern? Modern!
Осталось дождаться. Релиз скоро!
И еще скоро будут несколько новых видео.

Мы регулярно постим задачки в @opensource_findings_python, так что можно нам помочь.
А если кто хочет мне закинуть на развитие опенсорса (за написание 32500 строк кода за 2 недели), то мой бусти открыт: boosty.to/sobolevn
Ну и звезды можно ставить, конечно же. Там посмотрите, какие люди нас уже советуют.

Большое спасибо Александру, Алексею, Роману, Максиму и всем остальным за неоценимую помощь. Пацаны, без вас никак! Лучшее сообщество!

Обсуждение: а чего бы вам хотелось в modern rest фреймворке? Чего сильно не хватает сейчас?

1 month ago | [YT] | 13

PyLounge - программирование на Python и всё о IT

Я недавно рассказывал про django-modern-rest. Появилось небольшое issues, которое отлично подходит для входа новичкам. Мб кому-то будет интересно

github.com/wemake-services/django-modern-rest/issu…

1 month ago | [YT] | 5

PyLounge - программирование на Python и всё о IT

🌟 💫 Clean Architecture Litestar Project Template

Не так давно я выкладывал cookiecutter шаблон FastAPI-проекта (t.me/pylounge/996) в стиле Clean Architecture. Не без шероховатостей, но благодаря вашему фидбеку удалось исправить большинство ошибок и причесать проект (но он будет допиливаться и дальше!).

Поэтому теперь, как и обещал, представляю вашему вниманию аналогичный шаблон только уже с Litestar вместо FastAPI. В часте Litestar я намерено ограничился только функционалом HTTP-фреймворка

github.com/Peopl3s/clean-architecture-litestar-pro…

P.S. Буду рад любому фидбеку, особенно фидбеку, который поможет улучшить шаблон :)

1 month ago | [YT] | 15

PyLounge - программирование на Python и всё о IT

🐍👄 Django Modern Rest

Там Никита Соболев (t.me/opensource_findings) (гений, миллиардер, филантроп, кор контрибьютер CPython) готовит альтернативу DRF - Django Modern Rest (github.com/wemake-services/django-modern-rest)

Из более менее достойных замен DRF могу вспомнить разве что Django-Ninja (github.com/vitalik/django-ninja) да и то там всё не так гладко. Поэтому у DMR есть все шансы выстрелить - асинк есть, слои есть, валидация есть. Проект перерабатывает опыт DRF, Litestar, Django Ninja и улучшает его + привносит собственные идеи и концепции.

Проект в активной фазе разработки, поэтому если хотите помочь и вписать себя в историю - welcome :_)

github.com/wemake-services/django-modern-rest

#django@pylounge #django-modern-rest@pylounge

1 month ago | [YT] | 6

PyLounge - программирование на Python и всё о IT

Собрал через cookiecutter шаблон для FastAPI-проекта в стиле Clean Architecture.

Внутри
1. Все разложено на слои - Domain, Application, Presentation, Infrastructure
2. Все запаковано в docker
3. FastAPI в качестве основного фреймворка + Pydantic для валидации
4. dishka для DI
5. Faststream для работы с брокерами (опционально)
6. SQLAlchemy + alembic для работы с БД
7. httpx + stamina для работы с HTTP-запросами
8. pytest для тестов
9. Makefile для удобной работы
10. При создании проекта можно выбрать БД, кэш и брокер сообщений
11. Пример кода

Когда я изучал все это, мне сильно не хваталого такого репозитория, поэтому, надеюсь вам он будет полезен

github.com/Peopl3s/clean-architecture-fastapi-proj…

P.S. Если заметили какие-то ошибки, проблемы, неточности, то милости прошу в комментарии или PR'ы, давайте совместно дошлифуем)
P.S.S Выкачу аналогичный шаблон для Litestar + ролик. Но тут самое главное концепция, поэтому на основе этого уже можно разложить любой микро-фреймворк

2 months ago | [YT] | 54

PyLounge - программирование на Python и всё о IT

⚡Новый ролик уже на канале - Разыскивается Живым Или Мёртвым: Легендарная История Себастьяна Рамиреса

https://www.youtube.com/watch?v=orGW8...

6 months ago | [YT] | 9

PyLounge - программирование на Python и всё о IT

😳 Вы что не слышали про FastStream О_о?

Держите FastStream, ознакамливайтесь!

https://www.youtube.com/watch?v=33bug...

Еще больше тут t.me/fastnewsdev

6 months ago | [YT] | 4

PyLounge - программирование на Python и всё о IT

Себастьян Рамирез (создатель FastAPI) намедни анонсировал FastAPI Cloud - платформу для деплоя FastAPI приложений в "облаке". Чтобы типо аналог Vercel для NextJS.

Ознакомиться с новой приблудой и подать заявку на ранний доступ можно тут - fastapicloud.com/


К слову про нелёгкую судьбу Рамиреса у нас недавно вышла статья на хабре (habr.com/ru/companies/idaproject/articles/903112/). Если пропустили, рекомендую ознакомиться)

7 months ago | [YT] | 15

PyLounge - программирование на Python и всё о IT

Недавно Армин (создатель Flask), спустя время, вернулся к написанию асинхронного питонячьего кода с asyncio и был неприятно удивлён 🌚

Оказывается многие проблемы живут годами и неизвестно когда пофиксятся.

На тему проблем асинхронки питона также вышел подкаст уважаемых мужчин ‪@moscowdjangoru‬ (https://www.youtube.com/watch?v=dDMjQ...) - Никита Соболев, Гриша Петров и Игорь Анохин обсудили схожие проблемы asyncio (рекомендую ознакомиться)

7 months ago | [YT] | 7