Django и Python

2205 0

12 почти однострочных конструкций от канала Digitalize

Набор полезных однострочных и почти однострочных конструкций python от youtube канала Digitalize.
Хоть все они давно известны, но почему-то далеко не все их используют ;)

1. Распаковка

   x, y, z = input().strip().split()

2. map: Выполнение функции для каждого элемента последовательности

   x, y, z = map(int, (x, y, z)
   # Объединяем с предыдущим
   x, y, z = map(int, input().strip().split())


Дальше по списку
2099 0

Функция для получения количества записей в моделях приложения Django

Иногда надо получить количество записей в моделях приложения django одной командой.
Если у вас до 10 моделей то можно конечно получить эти цифры через shell или функцией с count для всех моделей,
а если моделей сотни, а если тысячи 0_о?
Или мы не знаем и знать не хотим названия моделей?
Код функции для вывода количества записей в моделях приложения
2815 2

Генерация схемы моделей Django проекта без IDE

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

Генерировать подобные схемы умеют продвинутые IDE типа PyCharm.
Но есть возможность генерации без IDE из консоли.
Для этого я использую django-extensions и pygrafviz и получаю что-то типа этого:


Для создания подобных схем нам необходимо:

Читать далее
1580 0

Удаление дублей и установка составного уникального ключа

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

Эта заметка о решении этой проблемы "одним ударом"

Для этого мы сделаем самописную миграцию с небольшой функцией для удаления дублей
Читать далее
1622 0

Повышаем уровень сертификата SSL от Lets` Encrypt NGINX до уровня A+

После очередной установки сертификата SSL от Lets`Encript и проверки его на ssllabs.com получил не радующий результат:


А хотелось бы такой:


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

Изменяем файл /etc/letsencrypt/options-ssl-nginx.conf следующим образом...

Читать далее
2113 0

Типовой шаблон проекта на Django

В процессе работы над множеством проектов выработал для себя типовую структуру Django проекта, которая удовлетворяет всем моим требованиям и удобна как для разработки так и для поддержки.

Как всегда я использую свой стандартный стэк: Debian/Ubuntu + Python 3.* + PostgreSQL + NGINX + virtualenv + Django

Структура моих проектах основывается на рекомендациях Two Scoops of Django 1.11 с учетом моего стека и выглядит следующим образом:

Читать далее
2140 0

Отображение русских символов в JSON полях админки Django

Часто в проектах использую JSON поля PostgreSQL.

При этом в админке Django они отображаются так как лежат в базе. Выглядит это примерно так:

{
    "1": "\u041f\u0435\u0440\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435",
    "2": "\u0412\u0442\u043e\u0440\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435"
}

Естественно это не по человечески и хотелось бы видеть в нормальном виде.

Для этого делаем следующее:

Читать далее
2068 0

Django кастомная миграция с добавлением установочных данных

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

Можно конечно временно обозначить связывающее поле ForeignKey как blank=True и заполнить после того как в новой модели появятся данные, а потом убрать blank=True.

Но это куча лишних действий и две миграции вместо одной.

Можно сделать тоже самое одной миграцией с добавлением в новую модель первой записи.

Для этого надо выполнить следующие шаги:

Читать далее
3258 1

PostgreSQL: ERROR: invalid page header in block XXXXXX of relation base/XXXXX/XXXXX

На VDS одного из проектов который я поддерживаю и который крутится на моем хостере по умолчанию (firstvds) недавно произошел сбой.

Сбои на VDS сами по себе явления необычные, а тут прям все "колом встало". 

В результате разбора ситуации оказалось что сбойнула файловая система.

Файловую систему оживил но уперся в другую проблему. Postgres отказался запускаться и писал что-то типа:



Решение далее
1410 0

Про кроссдоменную авторизацию для Django

Видео относительно старое но по сей день актуальное.

Возможно велосипед, но велосипед простой и понятный.


Контактные данные

 Россия, г. Москва