一般的なパラメータ
すべてのフィールドタイプに共通のパラメーターセットがあります。
主キー
主キー: bool=False->デフォルトはFalseです。
テーブルのプライマリキーカラムを設定し、外部キーは常にモデルのpkを参照します。
SQLでのみ使用します。
自動増分
自動増分: bool=Prime_key、type==int->列がプライマリキーでタイプがIntegerの場合、デフォルトはTrue、それ以外の場合はFalseです。
int/bigintフィールドでのみ使用できます。
フィールドに自動増分がある場合は、オプションになります。
SQLとpydanticで使用します(pkフィールドを自動増分のオプションフィールドに変更します)。
空にすることができます
空: bool=False->リレーショナルフィールド以外のすべてのフィールドはデフォルトでFalseです。
ユーザーが次のいずれかを指定すると、自動的にTrueに変更されます。
- デフォルト値または関数を提供します
- server_default値または関数を提供します
- 整数プライマリ_keyフィールドに自動増分を設定します
フィールドがオプションか必須かを指定し、SQLとpydanticで使用します。
これらは最も一般的な設定であるため、デフォルトではpydanticとsqlalchemyに使用されます。
- nullable=False-データベースカラムが空ではなく、pydanticでフィールドが必要であることを示します
- nullable=True-データベースが空で、フィールドがpydanticでオプションであることを示します
pydanticとデータベースで異なる設定をしたい場合は、以下のsql_nullableを参照してください。
!!!(注)デフォルトでは、すべての外部キーも空にすることができます。つまり、関連するモデルは必要ありません。
1 | |
sql_nullable
sql_nullable: bool=nullable->デフォルトはnullable値です(上記のとおり)。
フィールドが空でないか、データベースでのみ空を許可するかを指定します。
この設定は、pydanticモデルとデータベースで異なるオプションを設定する場合にのみ、nullableと組み合わせて使用します。
使用例としては、データベースのフィールドを空にしないようにすることができますが、pydanticでフィールドを空にできるようにします(server_default値を使用します)。 これにより、フィールドが空に更新されないようになります(server_default設定と同様に、デフォルト値が使用されるため、空の値を挿入することはできません)
デフォルト
デフォルト値: Any=None->デフォルトはNoneです。
他の値が渡されない場合は、デフォルト値が使用されます。
挿入時に呼び出されるSQLでは、pydanticモデル定義時に使用されます。
フィールドにデフォルト値がある場合は、オプションになります。
静的な値を渡すことも、呼び出すこともできます(関数など)
SQLとPydanticの両方で使用されます。
使用例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
サーバーのデフォルト
server_default: Any=None->デフォルトはNoneです。
他の値が渡されない場合は、デフォルト値が使用されます。
サーバー側で呼び出されるSQLでは、ie SQL関数(now()やsqlalchemy text()句にラップされたクエリ/値など)を渡すことができます。
このフィールドにserver_default値がある場合は、オプションになります。
静的な値を渡すことも、呼び出すこともできます(関数など)
SQLでのみ使用します。
使用例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
!!! 警告サーバー_defaultはstr、sqlalchemy.sql.elements.ClauseElement、または sqlalchemy.sql.elements.TextClause を受け入れますしたがって、ie整数値を設定する場合は、上記のようにsqlalchemy. text()関数にラップする必要があります
!!!ヒントsqlalchemy. text()に含まれる有効なSQL(方言固有)を渡すこともできます
1 | |
!!!info server_defaultはsqlalchemyテーブル定義に直接渡されるため、サーバーのデフォルトのsqlalchemyドキュメントで詳細を読むことができます
お名前
name: str=None->デフォルトはNoneです
使用するカラム名エイリアスを指定できます。
キーワードを保持した既存のデータベース構造を使用する場合や、ormarフィールド名とは異なるデータベース名を使用する場合に便利です。
次のコードスニペットを例にとります。
Pythonの予約語としてfromを使用すると、そのカラム名を使用してモデルを作成できなくなります。
モデル名をfrom_に変更し、引数name='from'を追加すると、ormarはデータベースのカラム名としてfromを使用します。
1 2 | |
同様に、データベースの外部キーカラム名を変更しながら、ormarで必要なリレーションシップ名を保持できます。
1 2 | |
インデックス
インデックス: bool=False->デフォルトはFalseです。
テーブル列のインデックスを設定します。
SQLでのみ使用します。
ユニークな
唯一: bool=False
テーブルカラムの一意の制約を設定します。
SQLでのみ使用します。
カバー_pydantic_type
デフォルトでは、ormarはモデル作成に適用される事前定義されたpydanticフィールドタイプを使用します(したがって、タイプヒントはオプションです)。
必要に応じて、組み込み型を完全に置き換える独自の型を適用できます。したがって、ユーザーとして、指定されたormarフィールド型のコンテキストで有効な型を提供する責任があります。
警告デフォルトでは、基礎となるpydanticフィールドに渡される組み込みパラメータを使用する必要があることに注意してください。
1 | |
!!!危険間違ったタイプのpydanticフィールドを設定すると、モデルが破壊される可能性があるため、何をしているのかがわかっている場合にのみ上書きしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |