Gemeenschappelijke parameters
Alle veldtypen hebben een gemeenschappelijke set parameters.
primaire sleutel
Primaire\ _ toets: bool = Onwaar - > Standaard is Onwaar.
Stel de primaire sleutelkolom op de tabel in, zodat de buitenlandse sleutel altijd verwijst naar de pk van het model.
Het wordt alleen gebruikt in SQL.
automatische verhoging
Autoincrement: bool = Primary\ _ key en type = = int - > Default True als de kolom een primaire sleutel is en het type Integer is, anders False.
Het kan alleen worden gebruikt met int / bigint-velden.
Als een veld automatisch wordt verhoogd, wordt het optioneel.
Gebruikt in SQL en Pydantic (wijzig het PK-veld in een optioneel veld voor automatisch verhogen).
Kan leeg zijn
Nullable: bool = False - > Standaard False voor alle velden behalve relationele velden.
Als de gebruiker een van de volgende zaken opgeeft, wordt deze automatisch gewijzigd in Waar:
- Geef een standaardwaarde of -functie op
- Biedt server\ _ standaardwaarde of -functie
- Automatische verhoging instellen op het veld Integerprimary\ _ key
Geeft aan of een veld optioneel of vereist is, gebruikt met SQL en Pydantic.
Standaardinstellingen worden gebruikt voor pydantische en sqlalchemie, omdat dit de meest voorkomende instellingen zijn:
- Nullable = False - geeft aan dat de databasekolom niet leeg is en dat het veld vereist is in pydantic
- Nullable = True - geeft aan dat de databasekolom leeg is en dat het veld optioneel is in pydantic
Als u verschillende instellingen voor pydantic en database wilt instellen, zie sql\ _ nullable hieronder.
!!!Merk op dat standaard alle buitenlandse sleutels ook null kunnen zijn, wat betekent dat er geen gerelateerd model vereist is.
1 | |
SQL\ _ nulbaar
SQL\ _ nullable: bool = nullable - > is standaard ingesteld op nullable waarden (zoals hierboven beschreven).
Geeft aan of het veld niet null is of alleen null is toegestaan in de database.
Gebruik deze instelling in combinatie met nullable alleen als u verschillende opties wilt instellen in het Pydantic-model en de database.
Een voorbeeld kan zijn om een veld in de database niet-nullable te maken, maar toe te staan dat het nullable is in pydantic (d.w.z. met behulp van de server\ _ default value). Dit voorkomt dat het veld wordt bijgewerkt naar null (zoals bij de server\ _ standaardinstelling, kunt u geen null-waarden invoegen omdat de standaardwaarde wordt gebruikt)
standaard
Standaard: Elke = Geen - > Standaard is Geen.
Als er geen andere waarde wordt doorgegeven, wordt de standaardwaarde gebruikt.
In SQL aangeroepen op invoegtijd, gebruikt tijdens Pydantic-modeldefinitie.
Als het veld een standaardwaarde heeft, wordt het optioneel.
U kunt statische waarden doorgeven of oproepen (functies, enz.)
Het wordt gebruikt in zowel SQL als Pydantic.
Voorbeeld van gebruik:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
server standaard
Server\ _ default: Elke = Geen - > Standaard is Geen.
Als er geen andere waarde wordt doorgegeven, wordt de standaardwaarde gebruikt.
In SQL aangeroepen aan de serverzijde, zodat u IE SQL functies zoals now () of queries / waarden verpakt in een sqlalchemy text () clausule kunt doorgeven.
Als het veld een server\ _ standaardwaarde heeft, wordt het optioneel.
U kunt statische waarden doorgeven of oproepen (functies, enz.)
Het wordt alleen gebruikt in SQL.
Voorbeeld van gebruik:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
!!! -waarschuwingsserver\ _ default accepteert str,sqlalchemy.sql.elements.ClauseElement of sqlalchemy.sql.elements.TextClause, dus als u ie integer-waarden wilt instellen, moet u deze in de sqlalchemy.text () -functie wikkelen, zoals hierboven weergegeven
!!!Tip U kunt ook een geldige SQL (dialect specifiek) in sqlalchemy.text ()
1 | |
!!!info server\ _ default direct doorgegeven aan de sqlalchemy tabel definitie, zodat u meer kunt lezen in de server standaard sqlalchemy documentatie
naam
Naam: str = Geen - > Standaard Geen
Hiermee kunt u de alias van de kolomnaam specificeren die u wilt gebruiken.
Dit is handig voor bestaande databasestructuren die gereserveerde zoekwoorden gebruiken, of als u een andere databasenaam wilt gebruiken dan de veldnaam ormar.
Neem het volgende codefragment als voorbeeld.
Van, als een gereserveerd woord in Python, voorkomt u dat u modellen maakt met die kolomnaam.
Als u de modelnaam wijzigt in van\ _ en de parameternaam = 'from' toevoegt, wordt ormar gebruikt als de naam van de databasekolom.
1 2 | |
Evenzo kunt u de namen van de vreemde sleutelkolommen in de database wijzigen met behoud van de gewenste relationele namen in ormar:
1 2 | |
index
Index: bool = Onwaar - > Standaard is Onwaar,
Stelt de index van de tabelkolom in.
Het wordt alleen gebruikt in SQL.
unieke
Uniek: bool = Onwaar
Stelt unieke beperkingen in voor tabelkolommen.
Het wordt alleen gebruikt in SQL.
Overlay\ _ pydantic\ _ type
Ormar gebruikt standaard het vooraf gedefinieerde Pydantic-veldtype, dat wordt toegepast bij het maken van modellen (dus de typehint is optioneel).
Als u wilt, kunt u uw eigen typen toepassen, die de ingebouwde typen volledig zullen vervangen. Daarom is het als gebruiker uw verantwoordelijkheid om typen aan te bieden die geldig zijn in de context van een bepaald ormar-veldtype.
Waarschuwing: u moet standaard de ingebouwde parameters gebruiken die zijn doorgegeven aan het onderliggende Pydantic-veld.
1 | |
!!!Gevaarlijk, het instellen van het verkeerde type pydantisch veld kan uw model breken, dus overschrijf het alleen als u weet wat u doet.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |