Перейти к содержанию

Запрос базы данных с помощью ormar

Набор запросов

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

Большинство методов также могут быть реализованы обратными внешними ключами через отношения множественно-много, а также через интерфейс QuerysetProxy.

!!!info Чтобы узнать, какие отношения поддерживаются и как их построить, посетите Связи.

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

Обратите внимание на то, что некоторые функции/методы относятся к нескольким категориям.

Для полноты представлены модели и реляционные методы.

Дополнительные сведения о каком-либо конкретном компоненте или функции см. на подстранице "Подробности".

Вставка данных в базу данных

  • создание (**kwargs) -> Модель

  • get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs) -> Tuple[Model, bool]

  • update_or_create(**kwargs) -> Model

  • bulk_create(objects: List[Model]) -> None

  • Модель

    • Метод Model.save()
    • Метод Model.upsert()
    • Метод Model.save_lated ()
    • Агент набора запросов

    • QuerysetProxy.create(**kwargs) Методология

    • QuerysetProxy.get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs) Методологии
    • QuerysetProxy.update_or_create(**kwargs) Методологии

!!!tip Для получения дополнительной информации о любых или всех этих функциях см. раздел Создание.

Чтение данных из базы данных

  • get(**kwargs) -> Модель

  • get_or_none(**kwargs) -> Optional[Model]

  • get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs) -> Tuple[Model, bool]

  • Первый () -> Модель

  • all(**kwargs) -> List[Optional[Model]]

  • Модель

    • Метод mod.load ()
    • Агент набора запросов

    • QuerysetProxy.get (**kwargs) метод

    • QuerysetProxy.get_or_none(**kwargs) Методологии
    • QuerysetProxy.get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs) Методология
    • Метод QuerysetProxy.first (
    • QuerysetProxy. all (**kwargs) метод

!!!tip Для получения дополнительной информации о некоторых или всех этих функциях, посетите раздел Читать.

Счет исходных данных из базы данных

Модель возвращает исходные данные в виде словаря или списка кортежей, а не ормара.

  • values(fields = None, exclude_through = False) -> List[Dict]

  • values_list(fields = None, exclude_through = False, flatten = False) -> List

  • Агент наборов запросов

    • QuerysetProxy.values(fields = None, exclude_through = False) Методология
    • QuerysetProxy.values_list(fields = None, exclude_through= False, flatten = False) Методологии

!!!tip Для получения дополнительной информации о любых или всех этих функциях перейдите в раздел Исходные данные.

Обновить данные в базе данных

  • update(each: bool = False, **kwargs) -> int

  • update_or_create(**kwargs) -> Model

  • bulk_update(objects: List[Model], columns: List[str] = None) -> None

  • Модель

    • Метод update ()
    • Метод Model. upsert ()
    • Model.save
    • Агент наборов запросов

    • QuerysetProxy.update_or_create(**kwargs) Методология

!!!tip Для получения дополнительной информации о некоторых или всех этих функциях посетите раздел Обновления.

Удаление данных из базы данных.

  • delete(each: bool = False, **kwargs) -> int

  • Модель

    • Метод Model. delete ()
    • Агент наборов запросов

    • Метод QuerysetProxy.remove ()

    • Метод QuerysetProxy.clear ()

!!!tip Для получения дополнительной информации о некоторых или всех этих функциях см. раздел Удаление.

Подключение и подзапросы

  • select_related(related: Union[List, str]) -> QuerySet

  • prefetch_related(related: Union[List, str]) -> QuerySet

  • Модель

    • Метод mod.load ()
    • Агент наборов запросов

    • QuerysetProxy.select_related(related: Union[List, str]) Методологии

    • QuerysetProxy.prefetch_related(related: Union[List, str]) Методология

!!!tip Для получения дополнительной информации о любых или всех этих функциях перейдите в раздел Подключения и подзапросы.

Фильтрация и сортировка

  • Фильтр (**kwargs) -> Поиск

  • Исключено (**kwargs) -> Набор запросов

  • order_by(columns:Union[List, str]) -> QuerySet

  • get(**kwargs) -> модель

  • get_or_none(**kwargs) -> Optional[Model]

  • get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs) -> Tuple[Model, bool]

  • all(**kwargs) -> List[Optional[Model]]

  • Агент набора запросов

    • QuerysetProxy.filter(**kwargs) Методология
    • QuerysetProxy.exclude(**kwargs) Методологии
    • QuerysetProxy.order_by(columns:Union[List, str]) Методология Метод* QuerysetProxy.get (**kwargs)
    • QuerysetProxy.get_or_none(**kwargs) Методология
    • QuerysetProxy.get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs) Методология
    • QuerysetProxy.all(**kwargs) метод

!!!tip Для получения дополнительной информации о некоторых или всех этих функциях см. раздел Фильтрация и сортировка.

Выбор столбцов

  • fields(columns: Union[List, str, set, dict]) -> QuerySet

  • exclude_fields(columns: Union[List, str, set, dict]) -> QuerySet

  • Агент набора запросов

    • QuerysetProxy.fields(columns: Union[List, str, set, dict]) Методология
    • QuerysetProxy.exclude_fields(columns: Union[List, str, set, dict]) Методология

!!!tip Для получения дополнительной информации о некоторых или всех этих функциях см. раздел Выбор столбцов.

Страницы и строки

  • paginate(page: int) -> QuerySet

  • limit(limit_count: int) -> QuerySet

  • offset(offset: int) -> QuerySet

  • get() -> модель

  • Первый () -> Модель

  • Агент наборов запросов

    • QuerysetProxy.paginate(page: int) Методологии
    • QuerysetProxy.limit(limit_count: int) Методологии
    • QuerysetProxy.offset(offset: int) Методология

!!!tip Для получения дополнительной информации о некоторых или всех этих функциях перейдите в раздел подкачки.

агрегатная функция

  • count(distinct: bool = True) -> int

  • Существо () -> логическое значение

  • Агент наборов запросов

    • QuerysetProxy.count(distinct=True) Методология
    • Метод QuerysetProxy.exists()

!!!tip Для получения дополнительной информации о любых или всех этих функциях посетите раздел агрегации.