Раз в месяц мы в Moscow Python Podcast собираемся и обсуждаем новые релизы, PEP, заинтересовавшие нас инструменты и статьи. Под катом — текстовая выжимка из обсуждения.
![](http://webcf.waybackmachine.org/web/20230314223115im_/https://habrastorage.org/getpro/habr/hub/f2f/b89/905/f2fb899050a39a3c14f7ed53f43593d7.png)
Django *
Фреймворк для веб-приложений на Python
Новости
Разработка Web API на Django с помощью Django REST framework: от создания моделей до тестирования
![](https://webcf.waybackmachine.org/web/20230314223115im_/https://habrastorage.org/getpro/habr/upload_files/a42/04d/46b/a4204d46b593cdeea6063d3c058c5b0f.png)
Django REST framework (DRF) — это мощный и гибкий инструмент для создания Web API на основе Django. Он предоставляет удобные средства для создания RESTful API, поддерживает аутентификацию, авторизацию, сериализацию, валидацию и другие функции.
В этой статье мы рассмотрим, как использовать Django REST framework для создания Web API на базе Django.
Python, Django и немного защиты кода
Привет, Habr! Компания, в которой я работаю, занимается системами умного дома и видеонаблюдения. Услуга работает по форме SaaS. Но недавно было решено продавать и локальное решение. За основу «коробки» было решено взять облако, немного его переделать и вот готов новый продукт…
С переездом с облачных «рельс» возник ряд вопросов. Один из них в том, что весь проект написан на Python‑ язык интерпретируемый на лету и не защищенный от копирования от слова совсем. Второй момент, что в проекте используется Django. Фреймворк со своими зависимостями, которые еще аукнулись нам в процессе поиска решений. То с чем мы столкнулись и к чему пришли далее в статье.
Как разработать канбан-доску на Django, DRF и Alpine.js
![](https://webcf.waybackmachine.org/web/20230314223115im_/https://habrastorage.org/webt/rf/6-/yb/rf6-ybnfrqaf-bxx3qv6pezo6e4.png)
Для структурирования и мониторинга рабочих процессов используют канбан-доски — например, Jira и Trello. Они особенно полезны, когда задачи состоят из множества этапов — согласования, выполнения, ревью и продакшена.
В статье рассказываем, как разработать собственную канбан-доску и развернуть ее на облачном сервере. Подробности под катом.
Истории
Основы PyCharm
![](https://webcf.waybackmachine.org/web/20230314223115im_/https://habrastorage.org/getpro/habr/upload_files/ded/c2c/1cf/dedc2c1cfff1ddf90ea2a08d811ca64f.jpg)
Сегодня я расскажу новичкам про полезные и удобные функции PyCharm. Эта статья предназначена для тех, кто только знакомится с PyCharm и написал свои первые программы. Затронем основной функционал пайчарма, который поможет упростить и ускорить вашу работу и узнаем, как запускать сервер и тесты Django в один клик. А ещё, я поделюсь подборкой полезных плагинов и горячих клавиш.
Пишем сервис для сокращения ссылок на Django, DRF
В этой статье мы напишем сервис для сокращения ссылок на Django, DRF.
Итак, на днях я получил тестовое задание от потенциального работодателя и решил убить двух зайцев сразу: выполнить тестовое задание и написать статью, в которой подробно описать весь процесс.
Итак, что мы имеем.
Как изучать язык Python для веб-разработки в 2023 году. Общие ориентиры
![](https://webcf.waybackmachine.org/web/20230314223115im_/https://habrastorage.org/getpro/habr/upload_files/de8/9d3/25a/de89d325ab5b666d32c935fb1b81e906.png)
Привет, Хабр! Меня зовут Тимофей, я Python Engineer с опытом в 3+ года.
Я бы не назвал данную статью полноценным роадмэпом в том понимании, в котором это слово обычно используют. В статье нет сроков изучения, отсутствует подробный план, затрагивающей все темы и подтемы. Да и зачем нужен еще один роадмэп «под копирку», когда в сети и так хватает качественных предложений.
Скорее, я хотел бы составить абстрактный план обучения, который сможет задать общий ориентир, а также будет коррелировать с роадмэпом вроде roadmap.sh. Кроме этого, я смогу дать несколько полезных советов из своего опыта, а также составлю списки полезных ресурсов для изучения языка, сопутствующих инструментов и технологий, которые в свое время помогли или же помогают мне самому.
Пакет для импорта данных в Django
Привет всем, хочу рассказать, что у меня получилось, когда я понял, что нам нужен пакет импорта произвольных данных из админки.
Что нам несет Python 3.12
Переписали виртуальную машину на новый DSL
И теперь ее гораздо проще менять, оптимизировать и проводить эксперименты.
В качестве примера, можно посмотреть на попытку добавления register-based интерпретатора. Другой пример, что часто два опкода идут вместе и выполняются последовательно большую часть времени. Например, LOAD_CONST
и RETURN_VALUE
. Для оптимизации, можно добавить новый опкод этой операции. Вместо двух действий он будет выполнять одно. На частых задачах получится неплохая прибавка к производительности.
Еще один пример: опкод CALL_FUNCTION.
Сам по себе довольно медленный. У него есть целая семья оптимизаций, например специализация CALL_FUNCTION_ISINSTANCE
, когда мы выкидываем промежуточный слой и сразу вызываем C-реализацию isinstance
. Минус в том, что Python богатый и динамически типизированный язык. В runtime может что-то поменяться и мы получим замедление — придется сваливаться обратно на общий путь опкода CALL_FUNCTION
.
Создаем диаграмму миграций Django проекта
![](https://webcf.waybackmachine.org/web/20230314223115im_/https://habrastorage.org/getpro/habr/upload_files/e82/8bb/857/e828bb857976477db5aaf38c83d4586e.png)
Наверное странная идея — нарисовать диаграмму миграций проекта Django. Вроде как — а зачем? Но если у Вас некий достаточно большой и достаточно старый проект, да еще над которым постоянно работает хотя бы небольшая команда — разобраться в зависимостях миграций становится уже сложновато.
Ну и так — полезно понять, как можно автоматически выбрать из проекта структуру миграций и построить из них диаграмму. Причем — автоматически. Что бы можно было это делать в любой нужный момент.
Использовать хранилище Django для хранения результатов Celery в Google Cloud
Тот, кто подключает Celery к Django, использует как правило, пакет django-celery-results для использования таблицы специальной модели Django в качестве хранилища результатов выполнения задач Celery.
Вероятно, через какое-то время, у вас возникнет желание заменить такую таблицу на что-то другое, например облачное хранилище. Приглашаю под кат всех заинтересованных.
Главное из мира Python за январь 2023
![](https://webcf.waybackmachine.org/web/20230314223115im_/https://habrastorage.org/getpro/habr/upload_files/ee4/47c/d80/ee447cd807fe305e82d4fc05806d8cf9.jpg)
Раз в месяц мы в Moscow Python Podcast собираемся и обсуждаем новые релизы, PEP, заинтересовавшие нас инструменты и статьи. Под катом — текстовая выжимка из обсуждения.
Python Дайджест: как обновиться с Python 3.4 до Python 3.11, если pip уже сломан
Python Дайджест собирает IT-новости уже 9 лет, рассказывает о концепциях, проектах, релизах. Кодовая база за это время мало изменилась и уже деградировала. Более 5 лет не хватало сил и времени, чтобы привести проект в актуальное состояние. Django с 1.9 обновилась уже до 4.1 версии, Python 3.4 не актуален, да даже обновить пакет через pip не получается, потому что сломан.
В 4 частях расскажу от первого лица, как 9-летний проект из состояния outdated вернулся в actual состояние и снова набрал 100 баллов в PageSpeed.
Начну с обновления до актуального Python и Django.
React+Django как написать Hello World
![](https://webcf.waybackmachine.org/web/20230314223115im_/https://habrastorage.org/getpro/habr/upload_files/f6c/9af/774/f6c9af774c6fbad79827985b2398fb19.png)
Создание веб приложения на основе React и Django, с базой данных на postgress, небольшое прощупывание RabbitMQ и чуть-чуть nginx, потом объясню зачем. Ах да! Завернём все в контейнеры и заставим подниматься в три команды!
Асинхронный django: разоблачение Великого и Ужасного
![](https://webcf.waybackmachine.org/web/20230314223115im_/https://habrastorage.org/getpro/habr/upload_files/13e/a68/9b6/13ea689b6279f622420832241b27fe7b.jpg)
Доброе утро, дорогие читатели! Это новый выпуск про асинхронность и django. Собственно, это follow-up: это должна была быть тема моей предыдущей статьи, но в прошлый раз у автора "не хватило проницательности" - как однажды выразился филин Гуамоко из "Волшебника Изумрудного города".
В общем, есть среди так называемых core разработчиков django один джентльмен по фамилии Гудвин. django channels, а также большинство фич, связанных с асинхронностью - это его творчество. В предыдущей статье я хотел похвалить использованный им подход, но потом разочаровался в нём: подход так себе.
А недавно - на последней конференции - что выдал этот кадр: он заявил, что, в общем-то, не очень привязан к django как к веб-фреймворку - что в этом плане, ему больше нравится FastAPI! Кроме того, в своём собственном проекте он использует клон FastAPI, django-ninja! Напомню, что по сюжету повести, великий и ужасный обманщик в конце покидает Изумрудный город на воздушном шаре.
После этих выяснившихся фактов, я думаю, читателю будет проще воспринять мою критику оного персонажа, коей в статье хватает. FastAPI, конечно - объективно, хороший фреймворк (написал пару слов о нём тоже!)
Пишем ETL-процесс на Python, часть 2
Сегодня мы сделаем web-интерфейс для управления запуском ETL-процесса. В прошлой статье мы написали консольный скрипт, который разово разово запускает выгрузку. Но как это передать заказчику ?!
Как подключить препроцессор SASS/SCSS к Django
![](https://webcf.waybackmachine.org/web/20230314223115im_/https://habrastorage.org/getpro/habr/upload_files/df3/49c/4eb/df349c4eb530a8d44f7d3c5e1dfc6038.png)
"Тачка на прокачку" уже давно не выходит. А вот "Django на прокачку" снова продолжает вас радовать. В сегодняшнем эпизоде мы:
1. Узнаем, что такое препроцессоры и чем они интереснее обычного CSS;
2. Разберёмся с SASS и SCSS, узнаем, чем они отличаются;
3. И рассмотрим на практике, как использовать SASS/SCSS в Django-проекте.
Как обычно, меньше болтовни – больше кода. Центрирует картинку Макс. Выходит за рамки Егор. Статью написали авторы канала PyLounge. Поехали!
Асинхронный django: в защиту DEP-9
![](https://webcf.waybackmachine.org/web/20230314223115im_/https://habrastorage.org/getpro/habr/upload_files/0c2/4cc/20b/0c24cc20bf9340f58996c946809083f4.jpg)
DEP-9 - это официальный "RFC" по асинхронности в django. Доброе утро, дорогие читатели. Возможно, вы видели мои статьи про django, асинхронность и мой проект "fibers". Что касается последнего - автор только одуплился после новогодних праздников, так что новостей в этом плане нет. Вместо этого, я сегодня расскажу об официальном подходе - DEP-9 - насколько он хорош и как вписывается в общую картину.
UPDATE. Статья немножко того... не окончена. Но если вас гложет любопытство, ничто не может удержать вас от прочтения.
В кадре вы видите django разработчиков, которые собрались на конференции во время COVID-пандемии.
Асинхронный django. Resurrections
![](https://webcf.waybackmachine.org/web/20230314223115im_/https://habrastorage.org/getpro/habr/upload_files/77c/b16/734/77cb167342be664e5c5f5cc6919e1fb4.jpg)
Поздравляю с годом Кролика и желаю сбычи ваших мечт!
Хочу вас обрадовать, что, судя по всему, в новом году будет продолжение франшизы про асинхронный django. Версия на гринлетах скоро получит новую, более изящную форму. И новое название - fibers (старое, greenhack, никуда не годилось).
Сюда просится пример с кодом, но здесь его вставлять нельзя. На платье Сати можно было написать, если бы она была в платье. Если кто не в курсе - это Сати, девушка и причёска - из Матрицы.
Лучшие open-source инструменты для Python проектов
![](https://webcf.waybackmachine.org/web/20230314223115im_/https://habrastorage.org/getpro/habr/upload_files/36f/745/849/36f7458495327e326c076f514746b8fe.png)
Open-source проекты, сторонние инструменты и библиотеки - это то, за что мы действительно любим Python. В этой статье я собрал самые полезные, валидированные сообществом и проверенные временем инструменты, конфигурации которых можно встретить в популярных проектах с открытым исходным кодом.
Инструменты распределены по этапам/сферам разработки. По каждому из них я дам небольшое описание и попытаюсь рассказать о его пользе. Если утилита имеет дополнительные расширения/плагины, то я расскажу про самые полезные (на мой взгляд).
Вклад авторов
-
Azy 295.0 -
kmike 276.0 -
shulyndina 255.0 -
fata1ex 247.6 -
grigoryvp 241.0 -
Dreadatour 220.0 -
junk 194.0 -
printf 186.0 -
kesn 180.0 -
marazm 170.0