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

Собрали в одном месте самые важные ссылки
и сделали Тренажер IT-инцидентов для DevOps/SRE

     25.08.2020       Выпуск 349 (24.08.2020 - 30.08.2020)       Видео

ORM vs plain SQL, why not both?

Буду рассказывать о ложной дихотомии ORM и запросов в голом SQL. Расскажу, как Django с одной стороны и aiohttp+asyncpg с другой позволяли нам катиться как угорелые

     31.07.2020       Выпуск 345 (27.07.2020 - 02.08.2020)       Статьи

Логгирование в Django (начальный обзор)

Django — один из самых популярных веб фреймворков Python, используемый многими организациями. Поскольку он использует встроенное средство ведения логов Python logging, использование логов в Django совсем несложная задача.

     24.07.2020       Выпуск 344 (20.07.2020 - 26.07.2020)       Статьи

Как Django может обрабатывать 100 миллионов запросов в день

Сегодня я буду писать о Django — фреймворке, который верно служит мне на протяжении последних пяти лет. Он помог мне преуспеть в разработке высоконагруженных решений, используемых сегодня миллионами пользователей.

Действительно, Python не очень «быстрый» язык программирования, однако он прост, удобен и люди его любят. С точки зрения производительности, он не может быть таким же быстрым, как Go или Node.js, но это становится несущественным, если рассматривать современные инфраструктуры и модульную разработку.

Поскольку я уже несколько лет варюсь в этом «котле разработки на Django», я пришел к нескольким ценным выводам, которыми собираюсь с вами поделиться.

     09.07.2020       Выпуск 342 (06.07.2020 - 12.07.2020)       Статьи

Сравнение разных django filter на примере демо базы PostgreSQL

Началось всё с того, что мне предложили в рамках предмета "Основы веб-программирования" поучаствовать в проекте, вместо проделывания лабораторных работ и курсовой, поскольку я заявил о том, что хотел быть делать нечто отдалённое от общего курса (и так уже достаточно знаний было по связке DRF + Vue, хотелось чего-то нового). И вот в одном из своих PR на github я решил использовать полнотекстовый поиск (задание намекало на это) для фильтрации контента, что заставило меня обратиться к документации Django в поисках того, каким же образом лучше это дело реализовать.

     05.07.2020       Выпуск 341 (29.06.2020 - 05.07.2020)       Статьи

Чтобы я хотел знать когда начинал изучать Django? — очень общий взгляд

Когда я начинал изучать Django и Wagtail по таким инструкциям, меня часто смущало, что пара команд создает кучу непонятных файлов (особенно на самом старте). Последующее описание этих файлов в инструкциях содержало слишком много деталей, которые трудно было усвоить за раз.

В этом посте я бы хотел посмотреть на Django с очень «философского вида» — минимум кода, максимум общих фактов. Думаю, что такой взгляд поможет тем, кто хочет начать изучать Django но теряется на старте.

     24.06.2020       Выпуск 340 (22.06.2020 - 28.06.2020)       Статьи

Как модифицировать базу данных после миграции в Django

Оригинальная статья: Adam JohnsonHow to Add Database Modifications Beyond Migrations to Your Django Project

В нескольких проектах Django, над которыми я работал, была необходимость в автоматическом внесение изменений в базу данных после проведенных миграций. Такая необходимость может возникнуть например для:

  • Управление хранимыми процедурами (stored procedures)
  • Управление проверочными ограничениями (check constraints)
  • Импорт статических данных из файла
  • Запись операций миграции в лог

     23.06.2020       Выпуск 340 (22.06.2020 - 28.06.2020)       Видео

Статическая типизация в Django

* Краткий обзор тайп-чекинга в питоне, mypy, pep484.
* Как я писал библиотеку django-stubs.
* С какими проблемами столкнулся в процессе.
* Что еще планируется сделать.
* DEP (Django Enhancement Proposal) по поводу добавления типов в core.

     12.06.2020       Выпуск 338 (08.06.2020 - 14.06.2020)       Статьи

Группировка вебсокет соединений для асинхронного фреймворка Starlette

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

     08.06.2020       Выпуск 338 (08.06.2020 - 14.06.2020)       Статьи

Хранение изображений с помощью Django/Django REST

Мне в ходе разработки часто приходится работать с моделями, в которых должны быть изображения. Для удобной организации я использую древовидную структуру папок. В целом, Django предоставляет инструмент для работы с изображениями. Например, вот вопрос на Хабр Q&A о том, как работать с пикчами в Django: использовать ImageField

     03.06.2020       Выпуск 337 (01.06.2020 - 07.06.2020)       Статьи

Django: один пользователь для всего

В этот раз стояла довольно непривычная задача — сделать одну User модель, которая может иметь несколько разных профилей (Исполнитель, Заказчик). И наличие каждого из профилей дает разные полномочия на работу с одними и теми же ресурсами.

     01.06.2020       Выпуск 337 (01.06.2020 - 07.06.2020)       Статьи

Простое распознавание лица «на лету» в Django view

Меня зовут Соболев Андрей и сегодня мы с вами создадим простую «плюшку» к Django, которая будет проверять, что на фотографии именно лицо человека (что бывает полезно в куче ситуаций).

Для этого нам понадобится OpenCV и 5 минут свободного времени. Поехали.

     26.05.2020       Выпуск 336 (25.05.2020 - 31.05.2020)       Статьи

Оптимизация запросов Django ORM

Оригинальная статья: Rocio Aramberri – Optimizing Django ORM Queries

Django ORM (Object Relational Mapping) – одна из самых мощных функций Django. Благодаря ей мы можем взаимодействовать с базой данных, используя код Python вместо SQL.

     24.05.2020       Выпуск 335 (18.05.2020 - 24.05.2020)       Статьи
     22.05.2020       Выпуск 335 (18.05.2020 - 24.05.2020)       Статьи

Асинхронные задания в Django с Celery

Если в вашем приложении есть какой-то длительный процесс, вы можете обрабатывать его не в стандартном потоке запросов/ответов, а в фоновом режиме.

Сегодня мы поговорим о процессе настройки и конфигурирования Celery и Redis для обработки длительных процессов в приложении на Django, чтобы решать такие задачи. Также мы воспользуемся Docker и Docker Compose, чтобы связать все части вместе, и рассмотрим, как тестировать задания Celery с помощью модульных и интеграционных тестов.

     22.05.2020       Выпуск 335 (18.05.2020 - 24.05.2020)       Статьи

Интеграция .pre-commit hook в Django проект

Для начала пару слов, о том что такое в целом хуки (hooks) и для чего они могут быть нужны. Git «из коробки» предоставляет инструмент, который умеет запускать ваши скрипты при наступлении какого либо события (к примеру пуш на сервер и т.п.)

.pre-commit это удобная надстройка над дефолтным git pre-commit hook, которая запускает скрипты описанные в .pre-commit-config.yaml перед созданием коммита. В теории звучит просто, перейдем к практике.

     19.05.2020       Выпуск 335 (18.05.2020 - 24.05.2020)       Статьи

Авторизация пользователя при помощи Starlette + Vue.js

Задача — создать пример авторизации пользователя с использованием фреймворков Starlette (https://www.starlette.io/) и Vue.js *, который был бы максимально комфортным разработчикам Django для «миграции» в асинхронный стек.

Почему Starlette? В первую очередь скорость. Starlette ультимативно быстр, и в тестах уступает только BlackSheep (https://pypi.org/project/blacksheep/). Во вторых Starlette весьма прост и писать на нем в силу его продуманности легко и приятно.

В качестве ORM мы будем использовать Tortoise ORM (со моделями и выборками «аля Django ORM»). В качестве сессионного механизма мы будем использовать JWT.

     13.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

Пилим веб-опросник как у Meduza: пошаговый гайд для начинающих

Меня зовут Егор, я Full-stack разработчик в Leader-ID. В этой статье я хочу поделиться простым рецептом по созданию красивого и удобного веб-опросника наподобие тех, что делает Meduza. Он умеет показывать статистику после ответа на отдельные вопросы, подсчитывать общий балл, выдавать комментарии, выгружать данные для анализа и шарить результаты в соцсети. Для реализации этой задачи я выбрал Django, DRF, Python и базу данных PostgreSQL.

     11.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

Настройка Debian, Nginx и Gunicorn для Django проекта

Была задача поднять свой Debian сервер на Nginx для проектов Django 3.х. Перерыв кучу информации в интернете, удалось это сделать соединив рекомендации с нескольких разных сайтов. Если вам интересно почитать, как настроить свой первый сервер для Django-проекта, то — добро пожаловать.

     09.05.2020       Выпуск 333 (04.05.2020 - 10.05.2020)       Статьи

Django. Как создать полиморфную систему динамических виджетов

Пример архитектурного решения для создания динамических виджетов сайта на Django. Также может быть использовано и в ряде других задач.

     05.05.2020       Выпуск 333 (04.05.2020 - 10.05.2020)       Статьи

Django. Добавление счётчиков к моделям в административной панели Django

Заметка о добавлении счетчиков к моделям в административной панели Django