Lire les données de la base de données
La méthode suivante vous permet de charger des données à partir d'une base de données.
-
get(*args, **kwargs) -> modèle
-
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] -
Modèle de
- La méthode Model.load()
-
Query Set Agent pour
-
QuerysetProxy.get(*args, **kwargs)Méthodes QuerysetProxy.get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs)MéthodeQuerysetProxy.first(*args, **kwargs)MéthodesQuerysetProxy.all(*args, **kwargs)Méthodes
obtenir
get(*args, **kwargs) -> Modèle
Obtient la première ligne de la base de données qui répond aux critères de configuration de kwargs.
Si aucune condition n'est définie, elle renvoie la dernière ligne de la base de données triée par colonne pk.
Passer une condition revient en fait à appeler la méthode filter(*args, **kwargs) décrite ci-dessous.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
!!!Une exception NoMatch est levée si aucune ligne ne remplit la condition.
1 | |
Acquisition ou non
get_or_none(*args, **kwargs) -> Model
Exactement comme get décrit ci-dessus, mais si aucun enregistrement de base de données correspondant à la condition n'est trouvé, None est renvoyé au lieu de lever une exception.
Obtenir ou créer
get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs) -> Tuple[Model, bool]
Créer et obtenir une combinaison de méthodes.
Essayez d'obtenir une ligne qui répond aux critères, et si une exception NoMatch est levée, une nouvelle ligne est créée avec les kwargs et_defaults donnés.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
!!!Attention Bien qu 'il s'agisse de lignes équivalentes dans la base de données, l'album et l'album 2 dans l'exemple ci-dessus sont 2 objets python différents! La mise à jour de l'un d'eux n'actualisera pas le second tant que vous n'aurez pas chargé explicitement () de nouvelles données de la base de données.
Notez que si vous souhaitez créer un nouvel objet, vous devez soit passer la valeur de la colonne pk, soit la colonne pk doit être réglée sur incrémentation automatique.
Le premier
first(*args, **kwargs) -> Model
Obtient la première ligne de la base de données, triée par ordre croissant de colonnes de clé primaire.
1 2 3 4 5 6 7 8 9 10 11 12 | |
Tous les
all(*args, **kwargs) -> List[Optional["Model"]]
Pour les options de filtre définies, renvoie toutes les lignes de la base de données pour un modèle donné.
Passer kwargs est un raccourci qui revient à appeler filter(*args, **kwargs).all().
Si aucune ligne ne remplit les conditions, une liste vide est retournée.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
itération
iterate(*args, **kwargs) -> AsyncGenerator["Model"]
Renvoie un générateur itérable asynchrone pour toutes les lignes de la base de données d'un modèle donné.
Passer args et/ou kwargs est un raccourci et revient à appeler filter(*args, **kwargs).iterate().
Si aucune ligne ne satisfait aux conditions, un générateur asynchrone vide est retourné.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
!!!avertit que l'utilisation de iterate() entraînera l'ignorance des appels précédents à prefetch_lated(), car ces deux optimisations n'ont pas de sens ensemble.
1 | |
Approche modèle
Chaque instance de modèle dispose d'un ensemble de méthodes pour sauvegarder, mettre à jour ou se charger.
Chargement de
Vous pouvez charger un modèle lié à ForeignKey en appelant la méthode load().
load() peut être utilisé pour rafraîchir le modèle à partir de la base de données s'il est modifié par un autre processus.
!!!tip En savoir plus sur la méthode load() dans Model Methods
La méthode QuerysetProxy
Lorsque vous accédez directement au champ ManyToMany associé ainsi qu'à la clé ReverseForeignKey, une liste des modèles associés est renvoyée.
Mais en même temps, il expose un sous-ensemble de l'API QuerySet, de sorte que vous pouvez filtrer, créer, sélectionner des modèles pertinents, etc. directement à partir du modèle parent.
obtenir
Fonctionne exactement de la même manière que la fonction get ci-dessus, mais vous permet d'obtenir l'objet pertinent de l'autre côté de la relation.
!!!conseil Pour en savoir plus sur Querysetproxy, visitez la section Querysetproxy
Acquisition ou non
Exactement comme get décrit ci-dessus, mais si aucun enregistrement de base de données correspondant à la condition n'est trouvé, None est renvoyé au lieu de lever une exception.
!!!conseil Pour en savoir plus sur Querysetproxy, visitez la section Querysetproxy
Obtenir ou créer
Exactement comme la fonction get_or_create ci-dessus, mais vous permet d'interroger ou de créer des objets associés de l'autre côté de la relation.
!!!conseil Pour en savoir plus sur Querysetproxy, visitez la section Querysetproxy
Le premier
Exactement comme la première fonction ci-dessus, mais vous permet d'interroger les objets pertinents de l'autre côté de la relation.
!!!conseil Pour en savoir plus sur Querysetproxy, visitez la section Querysetproxy
Tous les
Exactement la même chose que tout ce qui précède, mais vous permet d'interroger les objets pertinents de l'autre côté de la relation.
!!!conseil Pour en savoir plus sur Querysetproxy, visitez la section Querysetproxy