コンテンツにスキップ

ormarを使用したデータベースのクエリ

クエリセット

各モデルは、基になるクエリとそのオプションを表すクエリセットに自動的に登録されます。

ほとんどのメソッドは、多対多の関係とQuerysetProxyインターフェイスを介して逆外部キー関係を実装することもできます。

!!!情報サポートされているリレーションシップとその構築方法を確認するには、リレーションシップにアクセスしてください。

簡単にするために、データを取得してデータベースに保存するために使用できるメソッドは、実装する機能に応じていくつかのカテゴリに分類されます。

いくつかの関数/メソッドは複数のカテゴリに属していることに注意してください。

完全性のために、モデルとリレーショナルメソッドがリストされています。

特定のセクションまたは機能の詳細については、詳細サブページを参照してください。

データをデータベースに挿入する

  • 作成(**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()メソッド
    • クエリセットエージェント

    • 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]]

  • モデル

    • Model. 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)メソッド

!!!ヒントこれらの機能のいずれかまたはすべての詳細については、読書セクションをご覧ください。

データベースから生データを読み込む

モデルは、ormarではなく、辞書またはタプルリストの形式で元のデータを返します。

  • 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

  • モデル

    • Model. update()メソッド
    • Model. upsert()メソッド
    • Model.save()メソッド
    • クエリセットエージェント

    • QuerysetProxy.update_or_create(**kwargs) 方法

!!!ヒントこれらの機能のいずれかまたはすべての詳細については、更新セクションをご覧ください。

データベースからデータを削除する

  • 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

  • モデル

    • Model. 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

  • ゲット(**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)メソッド

!!!ヒントこれらの機能のいずれかまたはすべての詳細については、フィルターとソートのセクションをご覧ください。

列を選択

  • 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]) 方法

!!!ヒントこれらの機能のいずれかまたはすべての詳細については、[列の選択]セクションをご覧ください。

ページングと行数

  • 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) 方法

!!!ヒントこれらの機能のいずれかまたはすべての詳細については、ページングセクションをご覧ください。

集計関数

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

  • 存在()->ブール値

  • クエリセットエージェント

    • QuerysetProxy.count(distinct=True) 方法
    • QuerysetProxyの存在()メソッド

!!!tipこれらの関数のいずれかまたはすべての詳細については、集計セクションをご覧ください。