IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте авторский блог

     20.11.2021       Выпуск 413 (15.11.2021 - 21.11.2021)       Статьи

Асинхронному django быть

Эта статья о фреймворке для перфекционистов с дедлайнами, и о том, можно ли добавить в него асинхронность. Некоторые в курсе, что со стороны Django Foundation также есть некоторые усилия в этом направлении. Например, есть DEP-09, который примерно очерчивает границы будущих изменений. Причём, некоторые преобразования, на взгляд авторов, слишком объёмные, и про них явно говорится, что они выходят за рамки DEP. Такой, например, является задача сделать django orm асинхронной. Учитывая, что, по любым меркам, django orm - это больше 50% всего django, а на мой взгляд - его главная часть, DEP-09 мне кажется какими-то непонятными полумерами.

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Павел Дружинин. Из веб-девелопмента к "железу"

В корпорациях любят всё автоматизировать. Большое количество энтерпрайз-продуктов и внутренних веб-сервисов, которые общаются между собой — все это привычные задачи внутренней и инфраструктурной разработки. Но что, если необходимо автоматизировать выдачу оборудования сотруднику компании? Это возможность выйти за рамки стандартных веб-сервисов и узнать что происходит на уровне железа. Как включить огромную железную коробку, которая умеет только принимать байты на серийный порт, в привычный нам, веб-разработчикам, стек Django, React. js, PostgreSQL, Celery и заставить все это общаться между собой? Посмотрим на консьюмеры Kombu, RabbitMQ. Поучимся управлять пружинами вендинга при помощи Python, читать оптические датчики. Построим всю систему до пользовательского интерфейса «снизу-вверх». И постараемся по пути не отрезать себе палец, когда будем перекидывать питание крутящих серво-приводов между шинами :)

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Максим Данилов. Скрытая супер-сила Django Admin Panel в масштабируемом Backend приложении

В своем докладе я расскажу о том, что на самом деле может django.contrib.admin, как и зачем преодолевать внутреннее сопротивление при работе с ним. Django Admin Panel — сложный и мало документированный инструмент в Django Framework, который способен значительно повысить скорость разработки, если в нём по-настоящему разобраться. — «A Не проще ли нам написать свой Backend?» Я отвечу: «Нет, не проще!». Семь лет инсайтов и открытий в моем докладе.

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Денис Аникин. FastAPI как основной framework для python бекендов

FastAPI уже не первый год с нами. Последние пару лет фреймворк явно на подъеме: количество звезд на гитхабе уже больше чем 50% от мастодонтов рынка — django, flask. В ds среде и в каждом туториале flask, в каждой второй вакансии суперсовременные горизонтально масштабируемые сервисы на… django. Однако, про fastapi разговоров довольно немного и проникновение как в рынок, так и в публичное пространство у него не велико. И уж тем более, пока ещё про него не говорили с позиции продакшена (как минимум, на конференциях). Так сложилось, что в банке мы сделали на нем несколько десятков сервисов и уже больше года активно эксплуатируем как раз в том самом продакшене, а так же рекомендуем его внутри, как основной, практически всем. За это время мы успели полюбить этот фреймворк, но при этом нашли его «зоны роста». В своем докладе я постараюсь раскрыть три темы: сделаю краткий обзор на сам фреймворк поделюсь тем, чего ему не хватает для полноценной жизни в продакшене (с моей точки зрения) подсвечу довольно очевидные потенциальные проблемы. Ну и, конечно же, займусь неймдроппингом: FastAPI!

     10.11.2021       Выпуск 412 (08.11.2021 - 14.11.2021)       Видео

Альбина Альмухаметова. Оптимизация i-запросов в Django+Postgres или неточности документации

На рынке веб-разработки Django, пожалуй, один из самых популярных фреймворков. Но может ли оказаться так, что в документации такого «старичка» есть неточности? В докладе расскажу о том, как оптимизация простого поискового запроса пошла не по плану. Вспомним старые добрые индексы и разберёмся, какие нам действительно нужны, и как соединить их с нашим приложением. В конце обсудим, что же нового случилось в 3 версии и как она упростила нам жизнь.

     12.10.2021       Выпуск 408 (11.10.2021 - 17.10.2021)       Статьи

Django Admin с миллионами записей — 11 практик оптимизаций для начинающих

Django — самый популярный Python web-framework. За больше чем 10 лет оброс огромным слоем возможностей. Среди них можно выделить — Django Admin — это готовый CRUDL интерфейс с поиском, фильтрами и хитрыми настройками. Каждый раз стартуя проект на Django, удивляюсь насколько круто иметь админку — web интерфейс просмотра данных. Да еще и бесплатно. Каждый раз поддерживая проект на Django, удивляюсь, как же сложно поддерживать админку в рабочем состоянии. В этой статье я постараюсь привести 11 практик, которые позволят избегать тормозов админки максимально долго.

     12.10.2021       Выпуск 408 (11.10.2021 - 17.10.2021)       Статьи

SQL в SQLAlchemy

Меня зовут Алексей Казаков, я техлид команды «Клиентские коммуникации» в Домклик. По моему опыту подавляющее большинство приложений, взаимодействующих с базой данных, использовали для этого Object Relational Mapper. В этой статье я продолжу знакомить вас с популярными ORM, которые встречались мне в продовых проектах. В прошлый раз мы рассматривали Django ORM , а сегодня на очереди всемогущий SQLAlchemy.

     12.10.2021       Выпуск 408 (11.10.2021 - 17.10.2021)       Статьи

Wagtail — лучшая CMS на python в нашей галактике

Wagtail - это популярная CMS на основе Django. Django предоставляет огромные возможности - с его помощью созданы не только сайты, но и, например, популярный веб-сервис комментариев disqus, веб-сервис хранения git репозиториев bitbucket и многое другое. На django можно создать все что угодно.

 

     06.10.2021       Выпуск 407 (04.10.2021 - 10.10.2021)       Статьи

Тестируем собственную батарейку для Django с pytest и tox

Итак, у нас есть идея потрясающей и всем необходимой батарейки для Django. После того, как мы написали весь код мы готовы релизнуть нашу батарейку в PyPI. Однако перед этим мы должны разобраться с несколькими моментами

     16.09.2021       Выпуск 404 (13.09.2021 - 19.09.2021)       Статьи

Отображение объектов на картах в админке Django

Бесплатная, с открытым исходным кодом библиотека DjangoAdminGeomap предназначена для отображения объектов на карте в админке Django.

     11.09.2021       Выпуск 403 (06.09.2021 - 12.09.2021)       Статьи

Как серверу на Django знать своих клиентов на React в лицо, практическое руководство

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

Достаточно несложно в React нарисовать форму, где можно позволить пользователям вводить свои учетные данные, включающие в себя логин и пароль. Не стоит практически никаких усилий, чтобы на Django сверить пароль, соответствующий логину в базе данных. Но что дальше? Обзор получился достаточно объемный с примерами кода, которые помогут воссоздать реализацию всех схем аутентификации/авторизации.

     01.09.2021       Выпуск 402 (30.08.2021 - 05.09.2021)       Релизы

uwsgiconf 0.23.0 и «Режим обслуживания»

О новой версии uwsgiconf с поддержкой активации режима обслуживания через административную панель Django.

     24.08.2021       Выпуск 401 (23.08.2021 - 29.08.2021)       Статьи

Принимаем на работу брокера для Celery: подбор, аджаст и выкатка

У Яндекса много самописных сервисов для внутренних задач: Яндекс.Формы, Яндекс.Диск, трекер, календарь. Со временем их решили использовать не только внутри компании, но и за ее пределами. Так появилась платформа Яндекс.Коннект.

Большинство сервисов Коннекта построено на Python V3. В качестве web-фреймворка используется Django, реже Flask и Tornado, а новые чаще пишутся на FastAPI. Сервисы, как и базы PostgreSQL, MySQL и MongoDB, живут в облаке. В качестве очереди сообщений почти везде используется Celery с MongoDB в качестве брокера. Он и стал проблемой.

     16.08.2021       Выпуск 400 (16.08.2021 - 22.08.2021)       Статьи

Как устроен Domain-Driven Design

Многие проекты на Django начинаются просто: есть база данных и к приложению, которое крутится на сервере, идут обращения. Например, так начиналась Dodo IS (информационная система компании Додо Пицца, где работал автор сегодняшней статьи). Но если использовать Django из коробки, можно натворить много бед и встретить пачку антипаттернов. Возможно, вы встречали такое на старых legacy-проектах.

     07.08.2021       Выпуск 398 (02.08.2021 - 08.08.2021)       Статьи

Асинхронность — в django

Да, эта статья о фреймворке для перфекционистов с дедлайнами и о том, как в нём не хватает асинхронности. По духу это больше похоже на Enhancement Proposal (менее формальный, чем он мог быть) или RFC, так что, если Вы любите подобные вещи, то Вам может быть интересно.

     22.07.2021       Выпуск 396 (19.07.2021 - 25.07.2021)       Статьи

Шпаргалка по командам django-admin

В этой статье приведен полный список команд утилиты django-admin с кратким описанием.

     17.07.2021       Выпуск 395 (12.07.2021 - 18.07.2021)       Статьи

Как работают Django Class-based views

Для новичка, который осваивает Django, представления на основе классов больше похожи на магию чёрного ящика, по крайней мере, у меня при первом знакомстве сложилось именно такое впечатление. Обильные руководства зачастую показывают, какие атрибуты и методы следует определить в вашем классе, чтобы этот ящик работал на вас, но не дают понимания принципа работы.Я хочу залезть под капот фреймворка и строчка за строчкой разобрать, как же работают представления на основе классов. Надеюсь, что по прочтении, Class-based views уже не будут казаться такими пугающими и я подстегну вас к дальнейшему самостоятельному изучению исходников. Возможно, вы думали о фреймворке как о некой магии, которую невозможно понять, но на самом деле это обычный код, написанный опытными разработчиками.

     16.07.2021       Выпуск 395 (12.07.2021 - 18.07.2021)       Статьи

Django Rest Framework для начинающих: создаём API для записи и обновления данных (часть 1)

Продолжаем изучать Django Rest Framework с точки зрения новичка. Мы уже разобрали создание REST API для получения данных из БД, включая отдельную статью о работе сериалайзера.

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