Python

Django, Flask, ORM, инструменты и библиотеки

Контрольный список для Python-разработчика

Перед тем, как взяться за создание проекта, который планируется распространять, стоит удостовериться, что соблюдены основные моменты, связанные с процессом разработки. Статья рассказывает, на что стоит обратить внимание. Рекомендации будут полезны для большинства проектов.

Читать дальше

Перевод строк сторонних Django-приложений с помощью утилиты makemessages

Иногда необходимо найти переводимые строки с помощью утилиты manage.py makemessages, относящиеся к стороннему приложению, установленному в каталоге виртуального окружения. Проблема заключается в том, что makemessages просматривает только те каталоги, которые находятся внутри текущего каталога. В заметке небольшая подсказка.

Читать дальше

Миграция данных с использованием Alembic

Alembic очень удобен, если необходимо выполнить миграцию схемы базы данных. Например, добавить или удалить таблицу или некоторые поля. Менее известно, что Alembic может выполнять обновление существующих данных в таблицах.

Читать дальше

Что нового в Python 3.6?

С момента выпуска версии 3.5 прошло более года. В статье — краткий обзор наиболее интересных изменений, которые затронули Python 3.6, с примерами.

Читать дальше

Django: заполнение полей InlineModelAdmin из объекта request

Конструируя с использованием Django типовой интерфейс на основе ModelAdmin, иногда важно инициализировать некоторое поле модели из InlineModelAdmin значением, полученным из объекта request. На первый взгляд, задача элементарная, но не спешите с выводами.

Читать дальше

Как работает отладчик PyDbg?

Если вы в той или иной мере интересуетесь аспектами реверс-инжиниринга Windows-приложений с использованием PyDbg, наверняка для вас будет важно разобраться в механизме работы последнего. Зная лучше отладчик, можно получить большую отдачу от него.

Читать дальше

Django ORM: пакетная вставка данных и игнорирование дублей

Используя метод bulk_create() стандартного менеджера модели для сохранения в базе данных множества объектов одним запросом, вы обнаружите, что он не работает, если попытаться с его помощью добавить записи, которые уже существуют в базе данных. Какие есть альтернативы?

Читать дальше

Указание информации об авторстве в Python-модулях

Анализируя различные модули, можно встретить такие переменные, как __author__, __copyright__, __credits__ и другие. Они находятся в верхней части каждого файла модуля, вне любого класса или определения функции, и относятся к информации об авторстве. В этой статье я расскажу, как их правильно использовать.

Читать дальше

Отправка логов по SMTP с буферизацией и TLS-аутентификацией

Используя модуль logging для отправки сообщений журнала по электронной почте, можно столкнуться с проблемой, состоящей в том, что каждый раз, когда вы добавляете запись в журнал, по электронной почте отправляется отдельное письмо. Как отправлять письма только по достижении некоторого количества сообщений? И что делать, если почтовый сервис в обязательном порядке требует TLS-аутентификацию?

Читать дальше

О процессах, многозадачности, многопроцессорности, потоках и многопоточности

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

Читать дальше

Приемы микрооптимизации регулярных выражений

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

Читать дальше

Выбор типа сокета для Python-проектов

Разрабатывая клиент-серверные системы для локального или сетевого использования, возникает вопрос, какой из интерфейсов межпроцессного взаимодействия выбрать. Давайте разберемся, когда уместны UNIX-сокеты, а в каких случаях лучше использовать TCP-сокеты.

Читать дальше

Эффективная работа с ORM в Django

По мере того, как проект набирает популярность, приходится проводить проверку производительности. Часто одной из слабых сторон становятся SQL-запросы, формируемые ORM. В статье рассматриваются известные приемы минимизации количества и оптимизации скорости выполнения SQL-запросов в проекте, реализованном с использованием фреймворка Django.

Читать дальше

Принудительное использование именных аргументов

Одним из способов улучшить удобочитаемость кода является использование именных аргументов в функциях. В некоторых функциях необходимо, чтобы отдельные аргументы могли быть только именными. Как добиться такого поведения в Python 3 и Python 2?

Читать дальше

Django Admin: собственные формы в стандартном стиле

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

Читать дальше