Übliche Parameter
Alle Feldtypen haben einen allgemeinen Satz von Parametern.
Primärschlüssel.
Primary_key: bool = False-> ist standardmäßig False.
Legen Sie die Primärschlüsselspalte in der Tabelle fest, und der Fremdschlüssel referenziert immer die pk des Modells.
Es wird nur in SQL verwendet.
Automatische Erhöhung
Automatisches Inkrement: bool = Primary_key und type == int-> True standardmäßig, andernfalls False, wenn die Spalte ein Primärschlüssel und vom Typ Integer ist.
Kann nur in Verbindung mit int/bigint-Feldern verwendet werden
Wenn das Feld eine automatische Erhöhung hat, wird es optional.
Wird in SQL und pydantic verwendet (ändern Sie das pk-Feld in ein optionales Feld für automatische Inkremente).
Kann leer sein.
Leer: bool = False-> Standardmäßig False für alle Felder außer für relationale Felder.
Sie wird automatisch zu True geändert, wenn der Benutzer eine der folgenden Optionen anbietet:
- Geben Sie einen Standardwert oder eine Funktion an
- Gibt einen server_default-Wert oder eine Funktion an
- Setzen Sie automatische Inkremente im Feld Integercrimary_key
Gibt an, ob die Felder optional oder erforderlich sind, um mit sql und pydantic verwendet zu werden.
Standardmäßig wird es für pydantic und sqlalchemy verwendet, da dies die am häufigsten verwendeten Einstellungen sind:
- nullable = False-gibt an, dass die Datenbanksäule nicht leer ist und dass das Feld in pydantic benötigt wird
- nullable = true-Zeigt an, dass die Datenbank leer ist und das Feld in pydantic optional ist.
Wenn Sie unterschiedliche Einstellungen für pydantic und Ihre Datenbank festlegen möchten, lesen Sie weiter unten sql_nullable.
!!!Beachten Sie, dass standardmäßig auch alle Fremdschlüssel leer sein können, was bedeutet, dass keine zugehörigen Modelle erforderlich sind.
1 | |
Zitat von_nullable
sql \ _ nullable : bool = nullable - > Standardmäßig ein Wert von nullable (wie oben beschrieben) .
Gibt an , ob das Feld nicht leer ist oder nur in der Datenbank leer sein darf .
Verwenden Sie diese Einstellung nur bei nullable , wenn Sie in einem pydantischen Modell und in der Datenbank unterschiedliche Optionen festlegen möchten .
Die Beispielverwendung könnte darin bestehen , ein Feld in der Datenbank nicht leer zu lassen , es jedoch in pydantic (auch mit dem Wert server _ default) leer zu lassen , wodurch verhindert wird , dass das Feld auf Null aktualisiert wird (wie bei der Einstellung server _ default können Sie keinen leeren Wert einfügen , da der Standardwert verwendet wird) .
anerkannt
Der Standardwert : Any = None - > ist standardmäßig None .
Wenn keine anderen Werte übergeben werden , wird der Standardwert verwendet .
In SQL , das zum Zeitpunkt der Einfügung aufgerufen wird , wird es während der Definition des pydantischen Modells verwendet .
Wenn Sie die Option [ ] auswählen , wird die
Sie können statische Werte oder aufrufbar übergeben (Funktionen usw .)
Es wird sowohl in SQL als auch in Pydantik verwendet .
Beispiel Verwendung :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Der Server erkennt den Wert
server _ default : Any = None - > Voreingestellt ist None .
Wenn keine anderen Werte übergeben werden, wird der Standardwert verwendet.
In einem serverseitigen Aufruf von sql können Sie die ie sql-Funktion übergeben, z. B. now () oder die in der sqlalchemy text ()-Klausel verpackte Abfrage/Wert.
Wenn das Feld einen server_default-Wert hat, wird es optional.
Sie können statische Werte oder aufrufbare (Funktionen usw.) übergeben
Wird nur in SQL verwendet.
Beispiele verwenden:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
!!! warning server_default akzeptiert str,sqlalchemy.sql.elements.ClauseElement oder sqlalchemy.sql.elements.TextClause Wenn Sie also einen IE Ganzzahlwert setzen möchten, müssen Sie ihn in die Funktion sqlalchemy. text () packen, wie oben gezeigt.
!!!Sie können auch gültige SQL übergeben, die in sqlalchemy.text () enthalten ist (dialektspezifisch)
1 | |
!!!info server_default übergibt direkt an die sqlalchemy-Tabellendefinition, so dass Sie mehr in der Standardsqlalchemy-Dokumentation des Servers lesen können.
Der Name
name: str = None-> Voreingestellt None
Erlaubt Ihnen, einen anderen Namen für den zu verwendenden Spaltennamen anzugeben.
Dies ist nützlich für vorhandene Datenbankstrukturen, die reservierte Schlüsselwörter verwenden, oder wenn Sie einen anderen Datenbanknamen als den ormar-Feldnamen verwenden möchten.
Nehmen wir als Beispiel den unten stehenden Code.
from, ein reserviertes Wort in Python, verhindert, dass Sie Modelle mit diesem Spaltennamen erstellen.
Das Ändern des Modellnamens in from_und das Hinzufügen des Parameters name ='from 'führt dazu, dass ormar from als Spaltenname der Datenbank verwendet.
1 2 | |
In ähnlicher Weise können Sie den Namen einer Fremdschlüsselspalte in der Datenbank ändern, während Sie die gewünschten Relationsnamen in ormar beibehalten:
1 2 | |
Die Indikation
Index: bool = False-> Vorgabe False,
Indexierung der Tabelle zu erstellen.
Es wird nur in SQL verwendet.
Einzigartig.
true = bool = falsch
Einzig die Liste der Beschränkungen.
Wird nur in SQL verwendet.
Überschreiben von_pydantic_type
Standardmäßig verwendet ormar einen vordefinierten pydantischen Feldtyp, der auf die Modellerstellung angewendet wird (daher sind die Typansagen optional).
Wenn Sie möchten, können Sie einen eigenen Typ anwenden, der die integrierten Typen vollständig ersetzt. Daher ist es Ihre Verantwortung als Benutzer, einen Typ bereitzustellen, der im Kontext eines bestimmten ormar-Feldtyps gültig ist.
Warnung Beachten Sie, dass Sie standardmäßig die integrierten Parameter verwenden sollten, die an das zugrunde liegende pydantische Feld übergeben werden.
1 | |
!!!Die Gefahr, ein Pydantik-Feld des falschen Typs einzustellen, kann Ihr Modell beschädigen, sodass Sie es nur überschreiben, wenn Sie wissen, was Sie tun.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |