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

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

     07.10.2015       Выпуск 94 (05.10.2015 - 11.10.2015)       Колонка автора

Пишем web-проекты: полиморфные связи или Foreign Key на две Django модели

Представим ситуацию. Есть модель Текст (заголовок, тело, теги) и модели Новость, Продукт, Реклама, которые имеют свои уникальные параметры. Необходимо связать Текст и все остальные - вполне логичное желание.

Как можно поступить:

  • Добавить Foreign Key в Текст (т.е. будет N=3 Foreign Key полей)
  • Сделать отдельные модели для связи - будет 3 таблицы для связки. (вручную их сделаем)
  • Сделать 2 поля, одно из которых будет говорить, какая модель имеется в виду, а второе – хранить ключ этой модели. + добавить свойство, которое будет возвращать запись из нужной модели (делать нужный query запрос)

...

     07.10.2015       Выпуск 94 (05.10.2015 - 11.10.2015)       Статьи

Функциональные тесты: Django + Selenium WebDriver и 3 варианта на Ваш выбор

«В жизни каждого django-разработчика наступает момент, когда он решительно рвет со своим прошлым, лишенным функционального тестирования!» Об этом и поговорим. 

     30.09.2015       Выпуск 93 (28.09.2015 - 04.10.2015)       Статьи

Пробуем JSON в Django и PostgreSQL (и сравниваем с MongoDB)

В Django 1.9 будет добавлено поле JSONField, его можно использовать с базой данных PostgreSQL >= 9.4. Давайте попробуем с ним поработать и оценить, насколько оно удобно.

В данный момент доступна альфа версия django 1.9, финальная запланирована на декабрь 2015. Установить альфа версию можно так:

pip install --pre django

Итак представим, что у нас есть интернет магазин, в котором мы предлагаем товары разных типов. Например, ноутбуки и футболки. Очевидно, что у таких товаров будет разный набор параметров: у футболок будет размер, цвет, а у ноутбуков - размер экрана, частота процессора, объем жесткого диска и прочее. Один из подходов для работы с такими данными в SQL - Entity–attribute–value model (EAV).

     16.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Колонка автора

Пишем web-проекты: Django Admin Actions

Интерфейс администратора Django достается разработчику "даром". Добавляешь немного строк кода и появляется UI где можно изменять объекты моделей. По умолчаниюю нам предоставляют GRUD возможности.
Но что если нам надо...[Продолжение]

     05.09.2015       Выпуск 89 (31.08.2015 - 06.09.2015)       Новости

Django 1.9 получит новый дизайн админки

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

     02.09.2015       Выпуск 89 (31.08.2015 - 06.09.2015)       Колонка автора

Полезные инструменты: django-debug-toolbar

Разработка программ сопряжена с сложностями. Произвольно или нет лезут различные баги. Для поиска ошибок применяют различные инструменты, например дебаг. Дебаг бывает кустарным - print'ами, а есть более каноничный подход - дебаггерами....[Продолжение]

     09.08.2015       Выпуск 85 (03.08.2015 - 09.08.2015)       Статьи

Vagrant, Python, Pycharm = (удобная, работа, Windows)

Django — широко известный и один из наиболее развитых фреймворков для веб-разработки. Django написан на Python и, следовательно, для работы с ним потребуется установленный интерпретатор Python. Это не представляет никаких проблем, если мы работаем в среде Linux. Однако события принимают совсем другой оборот, если приходится заниматься разработкой на Python под Windows.

     29.07.2015       Выпуск 84 (27.07.2015 - 02.08.2015)       Статьи

Django ORM. Добавим сахарку

Фреймворк Django, пожалуй, самый популярный для языка Python. Однако, при всей его популярности, часто критикуют его ORM — а именно lookup синтаксис через подчеркивания. На самом деле, такой выбор синтаксиса вполне обоснован — он легок в понимании, расширяем, а главное — прост, как швабра. Тем не менее, хочется красоты, или даже прямо изящества. Но красота — понятие относительное, поэтому будем отталкиваться из конкретных задач.

     18.07.2015       Выпуск 82 (13.07.2015 - 19.07.2015)       Статьи

OAuth и django rest framework

Автор рассказывает о том как непросто оказалось решить тривиальную, на первый взгляд, задачу - добавить вход через социальные сети по протоколу OAuth

     15.05.2015       Выпуск 77 (12.05.2015 - 17.05.2015)       Релизы

PyCharm 4.5

Из нововедений отмечают:
Новый инструмент для работы с manage.py
Поддержка Django 1.8
Рефакторинг Bulk move (групповое перемещение)
Рефакторинги для конвертации Python-модуля в пакет и наоборот
Значительно улучшенная поддержка IPython Notebook с новой IPython Notebook консолью
Временные Python-файлы (Scratch Files)
Начальная поддержка Python 3.5
Режим редактора Distraction-free mode, позволяющий ни на что не отвлекаться
И многое другое

     13.05.2015       Выпуск 77 (12.05.2015 - 17.05.2015)       Статьи

Почему я не люблю конфигурацию в django-style

Автор библиотеки aiohttp делится своим мнением по поводу правильности и неправильности организации конфигов в приложении

     04.05.2015       Выпуск 75 (27.04.2015 - 03.05.2015)       Статьи

Django-jenkins и COVERAGE_EXCLUDES_FOLDERS

Автор потратил некоторое время на поиск правильного способа прописать каталоги исключенные из coverage отчета для jenkins и делится готовым рецептом

     18.04.2015       Выпуск 73 (13.04.2015 - 19.04.2015)       Видео

Moscow Django MeetUp № 26

К своему стыду мы пропустили информацию о прошедшей на прошлой недели микроконференции с двумя интересными докладами о именовании переменных и об удобствах применения применении pundle вместо pip и virtualenv

     14.04.2015       Выпуск 73 (13.04.2015 - 19.04.2015)       Статьи

Создаем роль view для django.admin

Стандартно в Django для модели создаются три роли: «добавить», «редактировать», «удалять». Но как же быть, если мы хотим дать роль пользователю только на просмотр и при этом использовать django.admin? Есть множество способов, но элегантных, которые позволили бы создать роль «Can view model» практически нет.

     13.04.2015       Выпуск 72 (06.04.2015 - 12.04.2015)       Статьи

Как отследить изменения поля при сохранении модели в Django

Порой возникает задача выполнить некоторые действия в момент, когда в модели произошло конкретное определённое изменение. В описанном примере рассматривается модель заказа, и нужно записать время оплаты заказа в момент, когда статус оплаты изменился с «не оплачено» на «оплачено»

     02.04.2015       Выпуск 71 (30.03.2015 - 05.04.2015)       Статьи

Разработка своего плагина для Django-CMS

Небольшое руководство по созданию расширения для Django-CMS на примере слайдера фотогалереи.

     30.03.2015       Выпуск 71 (30.03.2015 - 05.04.2015)       Статьи

Поиск в django-админке по вычисляемому полю

В джанговской админке есть встроенный механизм поиска по полям модели. Достаточно просто указать поле search_fields в классе, унаследованном от ModelAdmin, и поиск по нужным полям заработает сам. Однако, иногда возникают задачи обеспечить поиск не только по простым полям, но и по значениям, сгенерированным методами. Как это сделать и описано в данной статье.

     18.03.2015       Выпуск 69 (16.03.2015 - 22.03.2015)       Статьи

Django DB Mailer — простая и удобная батарейка, для отправки почтовых сообщений в вашем проекте

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