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

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

     04.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Статьи

Двойная проверка блокировки с Django ORM

Оригинальная статья: Luke PlantDouble-checked locking with Django ORM

Шаблон блокировки с двойной проверкой может быть полезен, когда:

  1. Вам необходимо ограничить доступ к определенному ресурсу, чтобы параллельные процессы не могли работать с ним одновременно.
  2. Другие доступные вам схемы блокировки сложны или медленные.

Этот пост о том, как можно реализовать этот шаблон в Django, используя функции ORM и блокировки на уровне базы данных. Шаблон может использоваться с любой другой ORM, но я проверил его только с Django, и подтвердил, что он работает, как и ожидается, используя PostgreSQL.

     27.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Подсчет запросов: Базовое тестирование производительности на Django

Очень часто можно услышать о методах тестирования, таких как TDD, и о том, как тестировать бизнес-логику приложения. Однако тестирование производительности приложения – это совсем другая задача. Есть много разных способов, но самым общим подходом считается создание среды, в которой можно проводить DDoS-атаку на свое приложение и наблюдать за его поведением. Это очень интересная тема, но это не то, о чем я хочу сегодня поговорить. Сегодня мы рассмотрим более простой тест, тот, который вы можете сделать с использованием юнит-тестов Django по умолчанию: то есть тестирование количество обращений вашего приложения к базе данных.

     19.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Видео

Django в стартапе: от 0 до 150 000 строк кода, не жертвуя качеством

Речь пойдет о том, как мы поддерживаем здоровье кодовой базы в проекте с безумными требованиями к скорости и постоянно меняющимися задачами. Мы поговорим про TDD, SOLID и KISS там, где люди меньше всего к этому готовы — в стартапе, который доставляет стройматериалы

     18.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Логирование изменения данных в моделях Django

В этой статье я бы хотел рассказать как можно реализовать автоматический контроль над изменениями данных в проектах построенных с использованием Django.

     17.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Создаем Todo приложение c помощью Django. Часть 1

Джанго это мощный фреймворк для создания веб-приложений. Изначально Django был создан для того, чтобы быстро создавать, например, новостные сайты (или другие сайты, который нужно создавать максимально быстро). И после нативного PHP не покидает ощущение, что ты едешь на очень быстрой машине разработки. Чтобы посмотреть все его возможности для быстрой разработки, мы с вами попробуем создать простое Todo — приложение.

     12.02.2020       Выпуск 321 (10.02.2020 - 16.02.2020)       Статьи

Как создать проект Django из шаблона

Шаблон проекта на Django – это естественный способ решения проблем, которые возникают, когда формат Django-проекта по умолчанию уже не отвечает требованиям. Сегодня в этом руководстве вы узнаете, как создать свой собственный проект из шаблона.

     06.02.2020       Выпуск 320 (03.02.2020 - 09.02.2020)       Статьи

Опыт создания web-приложения с Pony ORM

Недавно передо мной встала задача написать на Python web-приложение для разделения счёта в ресторане между участниками трапезы. Так как нужна DB для хранения данных о заказах и пользователях, встал вопрос выбора ORM для работы с базой. Разработка велась на Flask, так что сразу отметается Django ORM и выбор изначально пал в сторону SQLAlchemy. С одной стороны эта ORM почти всемогущая, но за счет этого она довольно тяжела в освоении. Помучившись с алхимией какое-то время, я решил найти более простой вариант, чтоб разработка пошла быстрее. В итоге для проекта была выбрана Pony ORM.

     27.01.2020       Выпуск 319 (27.01.2020 - 02.02.2020)       Статьи

Современный стек сборки и публикации сайтов на Django

В данной статье описано использование легковесных инструментов для публикации сайта на Django - gitea, drone

     23.01.2020       Выпуск 318 (20.01.2020 - 26.01.2020)       Статьи

Конфигурационные файлы в Python

Конфиги. Все хранят их по разному. Кто-то в .yaml, кто-то в .ini, а кто-то вообще в исходном коде, подумав, что "Путь Django" с его settings.py действительно хорош.

 

В этой статье, я хочу попробовать найти идеальный (вероятнее всего) способ хранения и использования конфигурационных файлов в Python. Ну, а также поделиться своей библиотекой для них :)

     08.01.2020       Выпуск 316 (06.01.2020 - 12.01.2020)       Статьи

Базовая настройка aiohttp.web приложений

Словил себя на мысли, что несмотря на то, что большинство моих веб-приложений работают на aiohttp.web, их настройка происходит в лучших Django традициях

     27.12.2019       Выпуск 314 (23.12.2019 - 29.12.2019)       Статьи

Отправляем письма с помощью asyncio и aiohttp из Django приложения

Я занимаюсь разработкой и поддержкой сервиса уведомлений. Сервис написан на Python3 и Django. Помимо транзакционных писем, пушей и сообщений, сервис также берёт на себя задачи по массовым рассылкам коммерческих предложений (не спам! trust me, отписки у нас работают лучше подписок) пользователям, давшим на это согласие. Со временем база активных получателей разрослась до более миллиона адресов, к чему почтовый сервис не был готов. Я хочу рассказать о том, как новые возможности Python позволили ускорить массовые рассылки и сэкономить ресурсы и с какими проблемами нам пришлось столкнуться при работе с ними.

     26.12.2019       Выпуск 314 (23.12.2019 - 29.12.2019)       Видео
     19.12.2019       Выпуск 313 (16.12.2019 - 22.12.2019)       Статьи

Нас Django вкус волнует и манит

Прошло уже несколько недель, как официально вышла 3 версия Django. Я работал с этой версией ещё до публикации официального релиза и, к сожалению, заметил, что развитие Django сильно замедлилось. Версия 1.3 от 1.7 отличается в разы, а вот 3 версия содержит косметические изменения ветки 2 и не более.

     05.12.2019       Выпуск 311 (02.12.2019 - 08.12.2019)       Статьи

React-admin и django rest framework

Наткнувшись недавно на статью о react-admin, я решил попробовать что это за зверь. Было интересно прикрутить это к джанге, благо там есть dataprovider для rest framework.

Но сначала нужно представить админку в виде api. В принципе, это легко делается с помощью viewset`ов, которых можно нагенерить автоматически пройдясь по моделям из админки.

     29.11.2019       Выпуск 310 (25.11.2019 - 01.12.2019)       Статьи

Пуленепробиваемые модели Django

Перевод статьи: Haki Benita – Bullet Proofing Django Models

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

     22.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Статьи

Django. Создание динамических настроек сайта с помощью SingletonModel

Допустим, вы создаёте сайт с CMS на основе Django, у которого должны быть какие-то динамические настройки сайта, которые будут доступны пользователю. Например, название сайта, какая-то специализированная информация, при этом вы учитываете возможность мультиязычности. То что тогда можно использовать для этого? Мне пришла мысль использовать базу данных.

Для реализации этого требуется следующее:

  1. Создание модели данных, которая всегда будет содержать только один объект, то есть только одну запись. То есть это будет Singleton Model.
  2. Запретить удалять данную запись и создавать новые в панели администрирования Django
  3. Возможность использования иноформации из этой модели прямо в шаблоне, без загрузки настроек сайта в view функции.

Давайте разберёмся по порядку, как это реализовать.

 

     22.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Статьи

Как добавить пользовательские кнопки в Django Admin

В этой статье “шпаргалке” рассмотрено добавление пользовательских кнопок в интерфейс Django Admin. В первой части рассказано как добавить одно кнопку на страницу списка выбранной модели – list view. Например кнопку импорта чего либо. Во второй части рассказано как добавить пользовательские кнопки действий (actions) для каждой выбранной записи отдельно с дополнительными формами.

     15.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Видео

Zappa, Chalice и друзья: запускаем код без серверов с помощью AWS Lambda

Технологии Serverless несколько лет, и с каждым годом её популярность растет. Для высоконагруженных систем это простой способ бесконечного масштабирования, а для простых сайд-проектов - это отличная возможность бесплатного хостинга. Принцип в том, что вы деплоите не вебсервер, а функции, и платите только за время выполнения этих функций (обычно это миллисекунды).

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

     08.11.2019       Выпуск 307 (04.11.2019 - 10.11.2019)       Статьи

Создаём сайт на Django, используя хорошие практики. Часть 1: создаём django-проект

Я начинаю серию статей, посвященных разработке сайтов на Django. Информация для этих статей получена из собственного опыта (полтора года коммерческой разработки на Django, несколько мелких фриланс-проектов, часть проекта pythonworld.ru написана на Django).