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

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

     16.03.2020       Выпуск 326 (16.03.2020 - 22.03.2020)       Статьи

Создание динамических моделей в реалтайме в Django

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

     11.03.2020       Выпуск 325 (09.03.2020 - 15.03.2020)       Статьи

Flask-DJ: Django (mvc) структура для проекта на flask

Когда я впервые столкнулся с Flask, у меня сразу возник вопрос по построению архитектуры проекта.

 

Прочитав пару статей на Хабре (https://habr.com/ru/post/275099/ и https://habr.com/ru/post/421887/), я вспомнил свой опыт создания проектов на Django, и решил сделать инструмент, благодаря которому не придется задумываться об архитектуре, но при этом можно будет использовать все возможности Flask.

     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) для каждой выбранной записи отдельно с дополнительными формами.