Comment utiliser QuerySet à Django

Comment utiliser QuerySet à Django
La plupart des applications Web sont implémentées avec la base de données maintenant. QuerySet est utilisé dans l'application Django pour récupérer des enregistrements en filtrant ou en découpant ou en commandant la table de base de données sans modifier les données d'origine. Le modèle a utilisé Django pour créer le tableau dans la base de données. Ainsi, la connaissance de l'utilisation du modèle dans Django est nécessaire pour comprendre l'utilisation de QuerySet. La fonction principale de la questiont est d'itérer les enregistrements des tables de base de données en les convertissant en requêtes SQL. Il peut être utilisé à partir de la ligne de commande Python ou en écrivant le script Python pour afficher la sortie du navigateur. Les utilisations de QuerySet pour récupérer les données d'une table de base de données de différentes manières ont été expliquées dans ce tutoriel.

Conditions préalables:

Avant de pratiquer le script de ce tutoriel, vous devez effectuer les tâches suivantes.

  1. Installez la version 3+ de Django sur Ubuntu 20+ (de préférence)
  2. Créer un projet Django
  3. Exécutez le serveur Django pour vérifier que le serveur fonctionne correctement ou non.

Configurer une application Django:

Exécutez la commande suivante pour créer une application django nommée queryapp.

$ python3 gérer.py startApp queryApp

Exécutez la commande suivante pour créer l'utilisateur pour accéder à la base de données Django. Si vous avez déjà créé l'utilisateur, vous n'avez pas besoin d'exécuter la commande.

$ python3 gérer.py créeuperuser

Ajouter le nom de l'application dans le Installé_app partie de la paramètres.py déposer.

Installé_apps = [

'QueryApp'
]]

Créer un dossier nommé modèles à l'intérieur de queryapp dossier et définissez le modèle Emplacement de l'application dans le Modèles partie de la paramètres.py déposer.

Modèles = [

… .
'DIRS': ['/ home / fahmida / django_pro / queryapp / modèles']],
… .
,
]]

Créer un modèle pour la table de base de données:

Ouvrir le des modèles.py fichier à partir du queryapp dossier et ajoutez le script suivant pour définir la structure de des produits les tables. Produit La classe est définie pour créer un tableau nommé des produits avec nom, type, marque, et prix des champs. Ici, nom, tapez, et marque Les champs stockeront les données des caractères et le prix Le champ stockera les données entières.

des modèles.py

# Module des modèles d'importation
De Django.Modèles d'importation DB
# Définir la classe pour créer des produits Table
Produit de classe (modèles.Modèle):
nom = modèles.Charfield (max_length = 100)
type = modèles.Charfield (max_length = 30)
marque = modèles.Charfield (max_length = 50)
Prix ​​= modèles.Integerfield ()

Courir le makemigrations Commande pour créer une nouvelle migration basée sur les modifications apportées par les modèles.

$ python3 gérer.py makemigrations QueryApp

Courir le émigrer commande pour exécuter les commandes SQL et créer toutes les tables de la base de données définies dans le des modèles.py déposer.

$ python3 gérer.py migrer

Modifier le contenu du administrer.py fichier avec le contenu suivant. Ici, Les classes de produits des modèlesS est enregistré en utilisant le enregistrer() Méthode pour afficher le des produits Tables du tableau de bord de l'administration Django.

administrer.py

# Importer le module d'administration
De Django.contriber d'importation administrateur
# Importer un modèle de produit
depuis .Modèles Importer un produit
# Enregistrer le modèle de produit
administrer.placer.inscription (produit)

Créer un fichier de modèle nommé liste de produits.html à l'intérieur de QueryApp / Templates / avec le script suivant. Ce script affichera toutes les données de des produits Tableau sous forme tabulaire avec une zone de recherche. L'utilisateur pourra rechercher les enregistrements particuliers de la table de produits en utilisant le formulaire de recherche. pour la boucle est utilisée dans le script pour itérer les données transmises du vues.py déposer.

liste de produits.html



<br>Tutoriel Django Queryset<br>



Produit de recherche



% csrf_token%
Produit de recherche:







% pour le produit dans objet_list%



% end pour%
IDENTIFIANTNomMarquePrix
produit.identifiant produit.nom produit.marquestyle = "Text-Align: Right"> $ Product.prix



Modifier le contenu du vues.py fichier avec le script suivant. Le modèle et les noms de modèle sont définis dans le Liste de produits classe. get_queryset () La méthode de la classe est définie dans le script pour filtrer les données en fonction du contenu soumis par la zone de recherche du modèle. Produit.objets.tous() la méthode renvoie tous les enregistrements du des produits tableau. demande.OBTENIR.clés() La méthode est utilisée dans le script pour vérifier que les données sont soumises par le formulaire de recherche. Si cette méthode revient vrai, puis le demande.OBTENIR.get ('src') La méthode est utilisée pour vérifier que la valeur soumise est vide ou non. Si cette méthode renvoie une valeur non vide, alors la valeur sera stockée dans la variable, mot-clé, et il sera utilisé pour filtrer les données en fonction de la marque et taper champs du des produits tableau.

vues.py

# Importer le module ListView
De Django.vues.Importation générique ListView
# Importer le module produit
depuis .Modèles Importer un produit
# Module d'importation Q
De Django.db.Modèles import Q
# Définir la classe pour interroger les données
Class ProductList (ListView):
# Définir le modèle
modèle = produit
# Définir le modèle
template_name = 'ProductList.html '
def get_queryset (self):
# Définissez le jeu de requête par défaut
queyset = produit.objets.tous()
# Vérifier que la valeur du formulaire est soumise ou non
Si vous-même.demande.OBTENIR.clés():
# Vérifiez le mot-clé de recherche
Si vous-même.demande.OBTENIR.get ('src') != ":
mot-clé = self.demande.OBTENIR.get ('src')
# Définissez l'ensemble de requête en fonction du mot-clé de recherche
queyset = produit.objets.Filtre (Q (marque = mot-clé.capitaliser ()) | Q (type = mot-clé.capitaliser()))
RETOUR DE RETOUR

Modifier le contenu du URL.py fichier avec le script suivant. Dans le script, le 'searchpro/ 'le chemin est défini pour appeler le Liste de produits.as_view () Méthode qui enverra toutes les données et les données filtrées du des produits table dans le fichier de modèle.

URL.py

# Importer le module d'administration
De Django.contriber d'importation administrateur
# Importer un chemin et inclure le module
De Django.Chemin d'importation des URL
# Importer le module de recherche de recherche
de QueryApp.View Import ProductListlist
urlpatterns = [
# Définir le chemin de l'administrateur
Path ('admin /', admin.placer.URL),
# Définissez le chemin de recherche du produit
Path ('SearchPro /', ProductList.as_view ()),

Ajouter des enregistrements dans le tableau:

Ouvrez la page d'administration Django et ajoutez quelques enregistrements dans le des produits table pour appliquer la questiont sur alors. Ici, cinq enregistrements ont été insérés.

Tous les enregistrements des produits avec la zone de recherche seront affichés dans le navigateur après avoir exécuté l'URL suivante.

http: // localhost: 8000 / searchpro


Tous les produits de shampooing affichés si le type de produit, 'shampooing'sera fouillé dans le boîtier de recherche.

Les produits de lait en poudre de le frais La marque sera affichée si la marque de produit, 'frais'sera fouillé dans le boîtier de recherche.

Conclusion:

La façon de filtrer les données d'une table de base de données simple à l'aide de QuerySet a expliqué dans ce tutoriel. Les données peuvent être filtrées de différentes manières. Les lecteurs comprendront l'utilisation d'une questiont pour filtrer ou rechercher des données dans le navigateur après avoir lu ce tutoriel.