Миграция данных в django

Опубликовано 2021.09.24 в разделе Python.

Создавать миграции командой python manage.py makemigrations вы и так умеете. Если кто не знает эту команду - она создаст файлы миграции при добавлении(или изменении моделей). С миграцией данных будет похожий механизм, давайте его рассмотрим.

Python генераторы

Опубликовано 2021.08.25 в разделе Python.

Генератор - это обыкновенная функция python. Главное отличие - это то, что данные она возвращает не командой return, а командой yield.

Эта команда и будет генерировать последовательность значений.

И если вызвать такую функцию - она не вернёт объект генератора, не значение. Затем из данного объекта посредством функции next или цикла for удастся получить значения, которые должна была вернуть функция.

Когда генератор вернёт все данные - будет брошен эксепшн типа StopIteration. По сути - генератор это тот же итератор, просто выглядит по-другому.

Замерить время выполнения скрипта на python

Опубликовано 2021.08.20 в разделе Python.

Чтобы замерить время выполнения python скрипта - достаточно узнать текущее время до его работы и после. Затем вычесть из второго первое и таким образом получить продолжительность работы кода.

Для работы нам потребуется только пакет time

Как создать миграцию в django

Опубликовано 2021.08.11 в разделе Python.

Миграции в django - это программно сгенерированные файлы, создающие таблицы в БД, обновляющие структуру этих таблиц или удаляющие эти таблицы.

Данная процедура обязательна при работе с моделями, которые хранятся в БД

Добавление и удаление связей ManyToManyField

Опубликовано 2021.08.11 в разделе Python.

Очень часто модель надо связать со множеством экземпляров другой модели. Например модель "Город" и модель "Район". В такой логике у нас будет один город и множество районов города. Связать такие модели можно через метод ManyToManyField.

Django objects filter

Опубликовано 2021.08.10 в разделе Python.

Для извлечения из БД списка моделей используется метод модели objects. Далее методом filter можно добавить условия выборки(аналогично where в БД).

Например, выбор всех моделей типа Task, у которых поле size равно 5 и поле approval равно True:

  1. Task.objects.filter(size=5, approval=True)

С этим всё просто. А теперь предположим, что эти фильтры зависят от чего-либо, например от GET-параметров, от пользователя, времени суток или банально страницы сайта. Передать набор фильтров в виде словаря нельзя.

В чём разница между null и blank в моделях django

Опубликовано 2021.08.10 в разделе Python.

В полях моделей django часто встречаются такие свойства как null и blank. В чём же разница между null и blank?

Если установить null = True - то в ячейке таблицы БД значение поля будет равно null(если вы не передадите значение поля в модели).

Свойство blank отвечает за обязательность заполнения поля в админке. То есть если указать blank = True - поле будет необязательным к заполнению. Если указать blank = False - такое поле обязательно нужно будет заполнить.