Чтение данных из базы данных
Следующие методы позволяют загружать данные из базы данных.
-
get(*args, **kwargs) -> модель
-
get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs) -> Tuple[Model, bool] -
first(*args, **kwargs) -> Model -
all(*args, **kwargs) -> List[Optional[Model]] -
iterate(*args, **kwargs) -> AsyncGenerator[Model] -
Модель
- Метод mod.load ()
-
Агент набора запросов
-
QuerysetProxy.get(*args, **kwargs)Методология QuerysetProxy.get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs)МетодологияQuerysetProxy.first(*args, **kwargs)МетодологияQuerysetProxy.all(*args, **kwargs)Методология
Получить
get(*args, **kwargs) -> модель
Получите первую строку из базы данных, соответствующую критерию настройки kwargs.
Если условие не задано, оно возвращает последнюю строку базы данных, отсортированную по столбцу pk.
Передача условия на самом деле является вызовом метода filter(*args, **kwargs), описанного ниже.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
!!!Предупреждение, что если нет строки, соответствующей условию, может вызвать исключение NoMatch.
1 | |
Получить или нет
get_or_none(*args, **kwargs) -> Model
То же самое, что и описанное выше get, но если запись базы данных не найдена, то возвращает None, а не вызывает исключения.
Получить или создать
get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs) -> Tuple[Model, bool]
Создание и получение комбинации методов.
При попытке получить строку, удовлетворяющую критериям, при возникновении исключения NoMatch создается новая строка с использованием данных kwargs и_defaults.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
!!!предупреждает, что, несмотря на то, что это эквивалентные строки в базе данных, album и album2 в приведенном выше примере представляют собой два разных объекта Python! Обновление одного из них не обновит второй, пока вы не будете явно загружены () новые данные из базы данных.
Обратите внимание, что если вы хотите создать новый объект, вы должны либо передать значение столбца pk, либо установить автоматическое приращение столбца pk.
Первый из них.
first(*args, **kwargs) -> Model
Получение первой строки из базы данных, отсортированной по возрастанию ключевого столбца.
1 2 3 4 5 6 7 8 9 10 11 12 | |
Все.
all(*args, **kwargs) -> List[Optional["Model"]]
Возвращает все строки в базе данных данной модели для заданных параметров фильтра.
Передача kwargs-это способ вызова filter(*args, **kwargs).all().
Если строки не соответствуют критериям, возвращает пустой список.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Итерация
iterate(*args, **kwargs) -> AsyncGenerator["Model"]
Возвращает асинхронный итеративный генератор для всех строк в базе данных данной модели.
Передача args и/или kwargs-это ярлык, который эквивалентен вызову filter(*args, **kwargs).iterate().
Если строка не соответствует условию, возвращает пустой генератор асинхронного типа.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
!!!предупреждает, что использование iterate() приведет к тому, что предыдущие вызовы prefetch_lated () будут проигнорированы, так как эти два вида оптимизации не имеют смысла.
1 | |
Метод модели
Каждый экземпляр модели имеет набор способов сохранения, обновления или загрузки самого себя.
Загрузить
Вы можете загрузить связанную модель ForeignKey, вызвав метод load().
load() можно использовать для обновления модели из базы данных, если она была изменена другим процессом.
!!!tip Узнайте больше о методе load() в методах модели
Метод QuerysetProxy
При прямом доступе к соответствующему полю ManyToMany и ReverseForeignKey, возвращайтесь к списку связанных моделей.
Но в то же время он предоставляет подмножество API QuerySet, поэтому вы можете фильтровать, создавать и выбирать связанные модели непосредственно из родительской модели.
Получить
Принцип работы аналогичен описанной выше функции get, но позволяет получать связанные объекты с другого конца отношения.
Tip
Получить или нет
То же самое, что и описанное выше get, но если запись базы данных не найдена, то возвращает None, а не вызывает исключения.
Tip
Получить или создать
То же самое, что и функция get_or_create выше, но позволяет запрашивать или создавать зависимые объекты с другого конца отношения.
Tip
Первый из них.
То же самое, что и первая функция выше, но позволяет запрашивать связанные объекты с другого конца отношения.
Tip
Все.
То же самое, что и все вышеперечисленные функции, но позволяет запрашивать связанные объекты с другого конца отношения.
Tip