Comment utiliser Bulk_Create dans Django?

Comment utiliser Bulk_Create dans Django?

Django Framework peut être utilisé pour créer une application Web avec une base de données en écrivant un script dans des modèles.py et vues.py Fichiers de l'application Django. Les données peuvent être insérées dans les tables de base de données en utilisant le tableau de bord de l'administration Django ou en écrivant un script dans le vues.py déposer. Le tableau de bord de l'administration Django nécessite une connexion pour un utilisateur authentifié pour accéder aux tableaux de la base de données. Des enregistrements simples ou multiples peuvent être insérés dans les tables de base de données en écrivant un script. bulk_create () La méthode est l'une des façons d'insérer plusieurs enregistrements dans le tableau de la base de données. Comment le bulk_create () La méthode est utilisée pour insérer les données multiples dans une table de base de données Django sera affichée 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 livret.

$ python3 gérer.py startapp bookApp

Exécutez la commande suivante pour créer l'utilisateur pour accéder à la base de données Django. Si vous en avez déjà créé un, 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 = [

'bookApp'
]]

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

Modèles = [

… .
'DIRS': ['/ home / Fahmida / django_pro / bookApp / Templates'],
… .
,
]]

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

Ouvrir le des modèles.py fichier à partir du livret dossier et ajoutez le script suivant pour définir la structure de livres les tables. Livre La classe est définie pour créer une table nommée des livres avec titre, auteur, prix, et publié_year des champs. Selon le script, titre et auteur Les champs seront stockés Données de caractère, et prix et publié_year Les champs stockeront les données entières. Ici le titre Le champ est défini avec l'attribut unique. Cela signifie que la valeur du titre Le champ n'acceptera aucune donnée en double.

des modèles.py

# Module des modèles d'importation
De Django.Modèles d'importation DB
# Définissez la classe de livres pour la table des livres
Livre de classe (modèles.Modèle):
titre = modèles.Charfield (max_length = 100, unique = true)
auteur = modèles.Charfield (max_length = 100)
Prix ​​= modèles.Integerfield ()
publié_year = 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 bookApp

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, la classe de livres des modèles est enregistrée à l'aide du enregistrer() Méthode pour afficher le livres Tables du tableau de bord de l'administration Django.

administrer.py

# Importer le module d'administration
De Django.contriber d'importation administrateur
# Modèle de livre d'importation
depuis .Modèles d'importation
# Modèle de livre d'enregistrement
administrer.placer.inscrire (livre)

Créer un fichier de modèle nommé Liste d'affichage.html à l'intérieur de bookApp / modèles / dossier avec le script suivant. Ce script affichera toutes les données de la table de livres sous forme tabulaire. En dehors de cela, la boucle est utilisée dans le script pour itérer les données transmises du vues.py déposer.

Liste d'affichage.html



<br>Django Bulk_create () Tutoriel<br>



Liste de livres Python







% pour le livre dans object_list%



% end pour%
IDENTIFIANTNomAuteurAnnée de publicationPrix
livre.identifiant livre.titre livre.auteurlivre.publié_year$ livre.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 Bulkinsert classe. get_queryset () La méthode de la classe est définie dans le script pour retourner tous les enregistrements du tableau des livres. D'autre part, Livre.objets.tous() La méthode est utilisée pour retourner tous les enregistrements du tableau des livres. existe () la méthode est utilisée dans le script pour vérifier le livres La table est vide ou non. Si cette méthode revient FAUX Ensuite, cinq enregistrements seront insérés dans le tableau des livres en utilisant le bulk_create () méthode.

vues.py

De Django.Raccourcis
# Importer le module ListView
De Django.vues.Importation générique ListView
# Modèle de livre d'importation
depuis .Modèles d'importation
# Définir la classe pour insérer plusieurs données
Class BulkInsert (ListView):
# Définir le modèle
modèle = réserver
# Définir le modèle
template_name = 'displaybooklist.html '
# Lire tous les enregistrements existants de la table des livres
queyset = livre.objets.tous()
# Vérifiez que la table des livres est vide ou non
Si Queyset.existant () == false:
# Insérer 5 enregistrements dans le tableau des livres à la fois
Livre.objets.bulk_create ([
Livre (Title = 'Python Crash Course, 2nd Edition', auteur = 'Eric Matthes', Price = 15, Publigé_Year = 2019),
Livre (Title = 'Automatiser les trucs ennuyeux avec Python, 2e édition', auteur = 'al sweigart', prix = 30,
publié_year = 2019),
Livre (title = 'Learning Python', auteur = 'Mark Lutz', Price = 15, Publigé_Year = 2019),
Livre (title = 'Head First Python', auteur = 'Paul Barry', Price = 45, Publié_Year = 2016),
Livre (Title = 'A Byte of Python', auteur = 'Swaroop C H', Price = 15, publié_year = 2013),
])
# Renvoie tous les enregistrements du tableau des livres
def get_queryset (self):
# Définissez le jeu de requête par défaut
livre de retour.objets.tous()

Modifier le contenu du URL.py fichier avec le script suivant. Dans le script, le 'admin /' Le chemin est défini pour ouvrir le tableau de bord de l'administration Django et le chemin «Books /» est défini pour appeler le Bulkinsert.as_view () Méthode qui inséra cinq enregistrements dans la table des livres et renvoyez les enregistrements 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
à partir des vues d'importation BookApp
urlpatterns = [
# Définir le chemin de l'administrateur
Path ('admin /', admin.placer.URL),
Path ('Books /', vues.Bulkinsert.as_view ()),
]]

Ouvrez le tableau de bord de l'administration Django pour vérifier si les données sont insérées correctement ou non en utilisant le bulk_create () fonction.

Les enregistrements insérés du livres La table sera affichée dans le navigateur après avoir exécuté l'URL suivante.

http: // localhost: 8000 / books /

Conclusion:

Plusieurs enregistrements peuvent être insérés dans la table de base de données Django de différentes manières en utilisant le bulk_create (). Un moyen simple d'insérer plusieurs enregistrements dans le tableau de la base de données en utilisant cette méthode a été affichée dans ce tutoriel pour aider les utilisateurs de Django à comprendre la logique derrière le processus.