Bereichen
Es gibt 12 grundlegende Modellfeldtypen und spezielle ForeignKey-und ManyToMany-Felder, um die Beziehungen zwischen den Modellen herzustellen.
!!!tip Beschreibung der Prüfbeziehungen für die Felder ForeignKey und ManyToMany.
Jedem Feld werden die Spaltenklasse sqlalchemy und der Python-Typ zugewiesen, der zum Erstellen von Pydantik-Modellen verwendet wird.
Wörter nach Typ
Die Schnur
String(max_length: int, min_length: int = None, regex: str = None,) Es gibt einen erforderlichen max_length Parameter.
- Sqlalchemy-Spalte: sqlalchemy. String
- Typ (für pydantic): str
!!!Für weitere Parameter lesen Sie bitte die pydantische Dokumentation.
Der Text
Text () verfügt nicht über die erforderlichen Parameter.
- Sqlalchemy-Spalte: sqlalchemy. Text
- Typ (für pydantisch): str
!!!Für weitere Parameter lesen Sie bitte die pydantische Dokumentation.
Der Burenwert.
Boolean () hat keine erforderlichen Parameter.
- Sqlalchemy-Spalte: sqlalchemy. Boolean
- Typ (für pydantisch): bool
Anzahl Anzahl
Integer(minimum: int = None, maximum: int = None, multiple_of: int = None) Es gibt nicht die erforderlichen Parameter.
- Sqlalchemy-Spalte: sqlalchemy. Integer
- Typ (für pydantic): int
!!!Für weitere Parameter lesen Sie bitte die pydantische Dokumentation.
große Zahl
BigInteger(minimum: int = None, maximum: int = None, multiple_of: int = None) Es gibt nicht die erforderlichen Parameter.
- Sqlalchemy-Spalte: sqlalchemy. BigInteger
- Typ (für pydantisch): int
!!!Für weitere Parameter lesen Sie bitte die pydantische Dokumentation.
kleine ganze Zahl
SmallInteger(minimum: int = None, maximum: int = None, multiple_of: int = None) Es gibt nicht die erforderlichen Parameter.
- Sqlalchemy-Spalte: sqlalchemy. SmallInteger
- Typ (für pydantisch): int
!!!Für weitere Parameter lesen Sie bitte die pydantische Dokumentation.
Floß.
Float(minimum: float = None, maximum: float = None, multiple_of: int = None) Es gibt nicht die erforderlichen Parameter.
- Sqlalchemy-Spalte: sqlalchemy. Float
- Typ (für pydantisch): float
!!!Für weitere Parameter lesen Sie bitte die pydantische Dokumentation.
Zehnerzahlen.
Decimal(minimum: float = None, maximum: float = None, multiple_of: int = None, precision: int = None, scale: int = None, max_digits: int = None, decimal_places: int = None) Keine notwendigen Parameter vorhanden
Sie können die Parameter length und precision oder max_digits und decimal_places verwenden.
- Sqlalchemy-Eintrag: sqlalchemy. DECIMAL
- Typ (für pydantisch): decimal. Decimal
!!!Für weitere Parameter lesen Sie bitte die pydantische Dokumentation.
Das Date
Date () hat nicht die erforderlichen Parameter.
- Sqlalchemy-Spalte: sqlalchemy. Date
- Typ (für pydantic): datetime.date
Zeit
Time (timezone: bool = False) Keine weiteren Parameter erforderlich.
Sie können timezone = true für die Zeitzonenerkennungs-Datenbankspalte übergeben.
- Sqlalchemy-Spalte: sqlalchemy. Time
- Typ (für pydantic): datetime. time
Datum Zeit
DateTime(timezone: bool = False) Es gibt nicht die erforderlichen Parameter.
Sie können timezone = true für die Zeitzonenerkennungs-Datenbankspalte übergeben.
- Sqlalchemy-Spalte: sqlalchemy. DateTime
- Typ (für pydantic): datetime. datetime
Für JSON
JSON () hat keine erforderlichen Parameter.
- Sqlalchemy-Spalte: sqlalchemy.JSON
- Typ (für pydantisch): pydantic.Json
2. Wichtige Dokumente
LargeBinary (max_length) hat einen erforderlichen max_length-Parameter.
- Sqlalchemy-Spalte: sqlalchemy. LargeBinary
- Typ (für pydantic): Byte
Die LargeBinary-Länge wird in einigen Back-Ends (dh mysql) verwendet, um die Größe des Felds zu bestimmen, in anderen wird sie einfach ignoriert, aber in ormar ist sie immer erforderlich Es sollte die maximale Größe (in Byte) der Datei/Byte sein.
LargeBinary verfügt auch über ein optionales represent_as_base64_str: bool = False-Flag, das Bytewerte automatisch in Base64-decodierte Zeichenfolgen konvertiert, wenn es auf Trueormar gesetzt ist.
Auf diese Weise können Sie über die API Werte festlegen, die während der json-Konvertierung fehlschlagen, auch wenn die Werte nicht mit utf-8 kompatibel sind.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
Einmalige gemeinsame Identifikationsnummer
UUID(uuid_format: str = 'hex') Es gibt nicht die erforderlichen Parameter.
- Sqlalchemy-Spalte: ormar. UUID basierend auf den Feldern sqlalchemy. CHAR (36) oder sqlalchemy. CHAR (32)(für Zeichenfolgen-bzw. Hexadezimalformate)
- Typ (für pydantic): uuid. UUID
Der Parameter uuid_format erlaubt entweder hexadezimale (Standard) oder Zeichenfolgenwerte.
Abhängig vom Format werden in der Datenbank 32 oder 36 Zeichen verwendet.
Sample sein:
- Wert im "hexadezimalen" Format =
c616ab438cce49dbbf4380d109251dce(Zeichen (32)) - "string"-Wert =
c616ab43-8cce-49db-bf43-80d109251dce(Zeichen (36))
Beim Laden ist es immer die Python-UUID, sodass Sie sie vergleichen und die Werte zwischen den beiden Formatwerten vergleichen können.
Aufzählungen
Es gibt zwei Möglichkeiten, eine Enumeration in ormar-> zu verwenden: eine, bei der Sie ein spezielles Enum-Feld des Spaltentyps sqlalchemy. Enum verwenden, und eine andere, bei der Sie eine Auswahl für ein beliebiges Feld in ormar festlegen.
Das Enum-Feld verwendet den für den Datenbankdialekt spezifischen Enum-Spaltentyp (sofern verfügbar), wird jedoch auf varchar zurückgesetzt, wenn dieser Feldtyp nicht verfügbar ist.
Die Auswahloptionen entsprechen immer dem Typ des ausgewählten Datenbankfelds.
Welche Option Sie verwenden, hängt daher davon ab, welches Backend Sie verwenden und welchen Spalten-/Datentyp Sie im Enumerationsfeld verwenden möchten.
Aufzählungen-Schlagworte
Enum (enum_class = Type[Enum]) hat einen erforderlichen enum_class-Parameter.
- Sqlalchemy-Eintrag: sqlalchemy. Enum
- Typ (für pydantisch): Typ[Enum]