Gegevens uit database lezen
Met de volgende methoden kunt u gegevens uit de database laden.
-
Krijgen (*Args,*\ * kwargs) - > model
-
get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs) -> Tuple[Model, bool] -
first(*args, **kwargs) -> Model -
all(*args, **kwargs) -> List[Optional[Model]] -
iterate(*args, **kwargs) -> AsyncGenerator[Model] -
model
- Model.load () methode
-
Query instellen Agent
-
QuerysetProxy.get(*args, **kwargs)werkwijze QuerysetProxy.get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs)werkwijzeQuerysetProxy.first(*args, **kwargs)werkwijzeQuerysetProxy.all(*args, **kwargs)werkwijze
krijgen
Krijg (*args,*\ * kwargs) - > model
Haalt de eerste rij uit de database die voldoet aan de door kwargs ingestelde voorwaarden.
Als er geen voorwaarden zijn ingesteld, retourneert het de laatste rij in de database gesorteerd op kolom pk.
Het passeren van een voorwaarde roept eigenlijk de hieronder beschreven filtermethode (*args,*\ * kwargs) aan.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
!!!Waarschuwing, als er geen rijen aan de voorwaarde voldoen, wordt er een NoMatch-uitzondering gegenereerd.
1 | |
Krijgen of niks
get_or_none(*args, **kwargs) -> Model
Dit is precies hetzelfde als de hierboven beschreven get, maar als er geen databaserecords worden gevonden die aan de criteria voldoen, wordt None geretourneerd in plaats van dat er een uitzondering wordt gegenereerd.
Verwerven of creëren
get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs) -> Tuple[Model, bool]
Maak en verkrijg een combinatie van methoden.
Pogingen om rijen te krijgen die aan de criteria voldoen, en als er een NoMatch-uitzondering wordt gegenereerd, wordt er een nieuwe rij gemaakt met de gegeven kwargs en\ _ defaults.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
!!!waarschuwing Album en album2 in het bovenstaande voorbeeld zijn 2 verschillende Python-objecten, ondanks dat het equivalente rijen in de database zijn! Het bijwerken van een van hen zal de tweede niet vernieuwen totdat u expliciet () nieuwe gegevens uit de database laadt.
Merk op dat als u een nieuw object wilt maken, u de pk-kolomwaarde moet doorgeven of dat de pk-kolom moet worden ingesteld op automatisch verhogen
eerste
first(*args, **kwargs) -> Model
Haalt de eerste rij op in oplopende volgorde gesorteerd op primaire sleutelkolom uit de database.
1 2 3 4 5 6 7 8 9 10 11 12 | |
allemaal
all(*args, **kwargs) -> List[Optional["Model"]]
Voor de ingestelde filteroptie retourneert u alle rijen in de database voor het gegeven model.
Het doorgeven van kwargs is een snelkoppeling die gelijk staat aan het aanroepen van filter (*args,*\ * kwargs) .all ().
Als er geen rijen zijn die aan de voorwaarde voldoen, wordt een lege lijst geretourneerd.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
iteratie
iterate(*args, **kwargs) -> AsyncGenerator["Model"]
Retourneert een asynchrone itereerbare generator voor alle rijen in de database voor een bepaald model.
Het passeren van args en / of kwargs is een snelkoppeling die gelijk staat aan het aanroepen van filter(*args, **kwargs).iterate().
Als er geen rijen zijn die aan de voorwaarde voldoen, wordt een lege asynchrone generator geretourneerd.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
!!!waarschuwt dat het gebruik van iterate () ervoor zorgt dat de vorige aanroep van prefetch\ _ lated () genegeerd wordt; het heeft geen zin om de twee optimalisaties samen te voegen.
1 | |
model werkwijze
Elk modelexemplaar heeft een set methoden om zichzelf op te slaan, bij te werken of te laden.
lading
U kunt een ForeignKey-gerelateerd model laden door de load () -methode aan te roepen.
Load () kan worden gebruikt om het model uit de database te vernieuwen als het door een ander proces is gewijzigd.
!!!Tip Lees meer over de load () methode in de modelmethode
QuerysetProxy methode
Wanneer u rechtstreeks toegang krijgt tot de relevante ManyToMany-velden en ReverseForeignKey, wordt een lijst met gerelateerde modellen geretourneerd.
Maar het toont ook een subset van de QuerySet API, zodat u rechtstreeks vanuit het bovenliggende model kunt filteren, maken, gerelateerde modellen kunt selecteren, enz.
krijgen
Het werkingsprincipe is precies hetzelfde als de get-functie hierboven, maar het stelt je in staat om gerelateerde objecten uit het andere uiteinde van de relatie op te halen.
Ga
Krijgen of niks
Dit is precies hetzelfde als de hierboven beschreven get, maar als er geen databaserecords worden gevonden die aan de criteria voldoen, wordt None geretourneerd in plaats van dat er een uitzondering wordt gegenereerd.
Ga
Verwerven of creëren
Precies hetzelfde als de functie get\ _ or\ _ create hierboven, maar u kunt gerelateerde objecten opvragen of maken vanaf het andere uiteinde van de relatie.
Ga
eerste
Het is identiek aan de eerste functie hierboven, maar stelt u in staat gerelateerde objecten uit het andere uiteinde van de relatie te bevragen.
Ga
allemaal
Dezelfde functionaliteit als al het bovenstaande, maar u kunt gerelateerde objecten van het andere uiteinde van de relatie opvragen.
Ga