Собрали в одном месте самые важные ссылки
читайте нас в Twitter
В этой статье мы напишем сервис для сокращения ссылок на Django, DRF.Итак, на днях я получил тестовое задание от потенциального работодателя и решил убить двух зайцев сразу: выполнить тестовое задание и написать статью, в которой подробно описать весь процесс.
В тот момент, когда нам потребовалась функция импорта данных, я подумал - ну уж эту-то функциональность я запросто найду в списке пакетов для Django. Действительно, на популярном сайте поиска пакетов, я нашел замечательный пакет Django Data Wizard делающий судя по описанию, как раз то, что мне было нужно.
Наверное странная идея - нарисовать диаграмму миграций проекта Django. Вроде как - а зачем? Но если у Вас некий достаточно большой и достаточно старый проект, да еще над которым постоянно работает хотя бы небольшая команда - разобраться в зависимостях миграций становится уже сложновато. Ну и так - полезно понять, как можно автоматически выбрать из проекта структуру миграций и построить из них диаграмму. Причем - автоматически. Что бы можно было это делать в любой нужный момент.
Мы переписали бекенд с FastAPI на Django. Расскажу, почему и как нам пришло это в голову, и что из этого получилось.
Python Дайджест собирает IT-новости уже 9 лет, рассказывает о концепциях, проектах, релизах. Кодовая база за это время мало изменилась и уже деградировала. Более 5 лет не хватало сил и времени, чтобы привести проект в актуальное состояние. Django с 1.9 обновилась уже до 4.1 версии, Python 3.4 не актуален, да даже обновить пакет через pip не получается, потому что сломан. В 4 частях расскажу от первого лица, как 9-летний проект из состояния outdated вернулся в actual состояние и снова набрал 100 баллов в PageSpeed. Начну с обновления до актуального Python и Django.
Доброе утро, уважаемый читатель. Сегодня мы разоблачаем господина Гудвина. В частности, обсуждаем DEP-9 - roadmap по добавлению асинхронности в django за его авторством.
"Django на прокачку" снова продолжает вас радовать. В сегодняшнем эпизоде мы:
1. Узнаем, что такое препроцессоры и чем они интереснее обычного CSS;
2. Разберёмся с SASS и SCSS, узнаем, чем они отличаются;
3. И рассмотрим на практике, как использовать SASS/SCSS в Django-проекте.
Настройка Visual Studio Code для работы над проектами Django немного отличается от типичного сетапа для pure Python проектов. Например, в Django мало пользы от mypy, так как он не поддерживает типы Django. Также обстоят дела и с линтерами, которые, без предварительной настройки, работают с кодом Django неправильно.
Эти проблемы можно решить файлами конфигураций соответствующих инструментов, но я использую готовые плагины для mypy и pylint.
Когда браузер клиенту нужно постоянное обновление данных с сервера, на ум сразу приходят сокеты. Но после множества просмотренных мной гайдов по данной теме, я не нашел ничего одновременно и актуального, и с нормальными объяснениями ну или хотя бы работающего. В итоге просидев пару-тройку часов у меня получилось собрать пазл из миллиона статей с Хабра и пары видеороликов от моих коллег из Индии.
По умолчанию все Django-проекты доступны по адресу http://localhost:8000 или http://127.0.0.1:8000 что одно и тоже. Эта адреса твоего локального компьютера. Соответственно никто другой в Интернете, перейдя по одному из этих адресов, ваш сайт не увидит. Проект пока рано заливать на какой-то хостинг или выделенный сервер, но показать его другому человеку уже нужно: похвастаться другу, человеку и команды разработки, заказчику и т.д. Даже если этот человек подключится к WI-FI у вас дома и будет находиться с сайтом в одной сети, localhost будет перенаправлять гостя на своё же устройство, а не на ваш сайт. Что делать, как показать Django-проект, которые запускается на локальном сервере, недоступном в Интернете?
Как подружить OpenAPI и JSON:API. Почему мы решили использовать JSON:API в нашем FastAPI приложении, и какие задачи решает данная спецификация. Для чего применять Compound Documents (included ресурсы). Почему мы не захотели использовать Django с DRF и расширение для JSON:API, а выбрали именно FastAPI. Доклад рассчитан на разработчиков, имеющих опыт с веб-приложениями на Python, а также тех, кто работает с REST API. Слушатели познакомятся со спецификацией JSON:API, узнают, как и зачем её применять, научатся применять готовые решения для быстрого создания ресурсов с поддержкой JSON:API.
Некоторые уже видели мои статьи про добавление асинхронности в django. Этот пост не об этом: вопрос более широкий и посвящён асинхронности в целом. И подход совсем другой.
Кстати, вопрос с асинхронным django тоже решился - как побочный эффект. Между прочим, собираюсь использовать это в продакшене при первой возможности.
Представляю релиз стабильной батарейки django_model_cached_property для кэширования property для отдельных объектов моделей в Django.
В ходе последних лет моей разработки проектов Django я понял, что почти все они имеют одно строение:API, Apps, Config, Library, Utils, Workers...В статье, помимо схемы архитектуры проекта Django, которую я использую в реальных промышленных проектах, подробно расскажу как этого достичь, чтобы все работало.
Подобрать удобный инструмент, для работы с markdown из Django админки, без лишних танцев с бубном.
В текущем проекте появилась потребность фильтровать таблицы в админке Django по условию "от такой-то даты/времени до такой-то даты/времени". К моему удивлению, для такой расхожей задачи при беглом поиске подходящих готовых решений найти не удалось. Может плохо искал, напишите в комментах.
Название поста может быть знакомо некоторым читателям. Действительно, я некоторое время назад задался вопросом, насколько будет сложно сделать django асинхронным. Так вот, процесс кодинга в этом направлении продолжился, и теперь есть целая альфа-версия.
Проект называется vinyl. У него есть репозиторий. Пользоваться им можно и нужно! Про то, как это делать, можно узнать из README - я думаю, всё вполне соответствует ожиданиям от асинхронной версии. Здесь я хочу рассказать про то, что, как говорится, удалось узнать в процессе.
Все иногда пишут на Django Rest Framework, я расскажу про наш опыт костылестроения и улучшайзинга
Слайды: https://moscowpython.ru/meetup/77/drf-and-isolenta/
Иногда проект перерастает Django ORM, и в игру входит SQLAlchemy. Расскажу, как каждый из них справляется (или нет) с нашей сложной бизнес-логикой. Ещё немного о том, почему мы выбрали SQLAlchemy, а что всё-таки можно было сделать, не выходя из Django.
Слайды: https://moscowpython.ru/meetup/77/django-alchemy/
Недавно я нашел баг в Django, создал тикет с исправлением и его приняли.В статье расскажу подробнее — над чем работал, в чем была ошибка и почему ее сложно встретить. А также еще про один баг, который по классике оказался фичей 😊.