Python

Comment utiliser bulk_create() dans Django?

Comment utiliser bulk_create() dans Django?

Le framework Django 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 la base de données en utilisant Django Administration Dashboard ou en écrivant un script dans le vues.py déposer. Django Administration Dashboard nécessite un login pour un utilisateur authentifié pour accéder aux tables de la base de données. Un ou plusieurs enregistrements peuvent être insérés dans les tables de la base de données en écrivant un script. bulk_create() méthode est l'un des moyens d'insérer plusieurs enregistrements dans la table de base de données. Comment le bulk_create() méthode est utilisée pour insérer les données multiples dans une table de base de données Django sera montrée dans ce tutoriel.

Conditions préalables:

Avant de pratiquer le script de ce didacticiel, vous devez effectuer les tâches suivantes :

  1. Installez la version Django 3+ 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

Configurez une application Django :

Exécutez la commande suivante pour créer une application Django nommée bookapp.

$ 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 createsuperuser

Ajoutez le nom de l'application dans le INSTALLED_APP partie de la Les paramètres.py déposer.

INSTALLED_APPS = [

'bookapp'
]

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

MODÈLES = [

… .
'DIRS' : ['/home/fahmida/django_pro/bookapp/templates'],
… .
,
]

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

Ouvrez le des modèles.py fichier de la bookapp 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 livres avec titre, auteur, prix, et publié_année des champs. D'après le scénario, Titre et auteur les champs stockeront données de caractère, et prix et publié_année 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 d'importation de modèles
de Django.modèles d'importation de base de données
# Définir la classe Book pour la table books
classe Livre (modèles.Modèle):
titre = modèles.CharField(max_length=100, unique=True)
auteur = modèles.CharField(max_length=100)
prix = modèles.ChampEntier()
publié_année = modèles.ChampEntier()

Exécutez le faire des migrations commande pour créer une nouvelle migration basée sur les modifications apportées par les modèles.

$ python3 gérer.py makemigrations bookapp

Exécutez le émigrer 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 de la administrateur.py fichier avec le contenu suivant. Ici, la classe Book des modèles est enregistrée en utilisant le S'inscrire() méthode pour afficher le livres tables dans le tableau de bord d'administration Django.

administrateur.py

# Importer le module d'administration
de Django.administrateur d'importation de contribution
# Importer le modèle de livre
de .modèles d'importation livre
# S'inscrire Modèle de livre
administrateur.placer.s'inscrire (Livre)

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

AfficherListeLivre.html



<br>Tutoriel Django bulk_create()<br>



Liste des livres Python







% pour le livre dans object_list %



% fin pour %
identifiantNomAuteurAnnée de publicationPrix
livre.identifiant livre.Titre livre.auteurlivre.publié_année$livre.le prix



Modifier le contenu de la vues.py fichier avec le script suivant. Les noms de modèle et de gabarit sont définis dans le BulkInsert classer. get_queryset() la méthode de la classe est définie dans le script pour retourner tous les enregistrements de la table livres. D'autre part, Livre.objets.tout() méthode est utilisée pour retourner tous les enregistrements de la table livres. existe() méthode est utilisée dans le script pour vérifier la livres le tableau est vide ou pas. Si cette méthode renvoie Faux puis cinq enregistrements seront insérés dans la table des livres en utilisant le bulk_create() méthode.

vues.py

de Django.raccourcis import rendu
# Importer le module ListView
de Django.vues.importation générique ListView
# Importer le modèle de livre
de .modèles d'importation livre
# Définir la classe pour insérer plusieurs données
classe BulkInsert(ListView):
# Définir le modèle
modèle = livre
# Définir le modèle
template_name = 'DisplayBookList.html'
# Lire tous les enregistrements existants de la table des livres
jeu de requêtes = livre.objets.tout()
# Vérifiez que la table des livres est vide ou non
si jeu de requêtes.existe() == Faux :
# Insérez 5 enregistrements dans la table des livres à la fois
Livre.objets.bulk_create([
Livre(title='Python Crash Course, 2nd Edition', author='Eric Matthes', price=15, Published_year=2019),
Book(title='Automate the Boring Stuff with Python, 2nd Edition', author='Al Sweigart', price=30,
publié_année=2019),
Livre(title='Learning Python', author='Mark Lutz', price=15, Published_year=2019),
Livre(title='Head First Python', author='Paul Barry', price=45, Published_year=2016),
Livre(title='A Byte of Python', author='Swaroop C H', price=15, Published_year=2013),
])
# Renvoie tous les enregistrements de la table livres
def get_queryset(self):
# Définir l'ensemble de requêtes par défaut
retour Réserver.objets.tout()

Modifier le contenu de la URL.py fichier avec le script suivant. Dans le scénario, le 'admin/' path est défini pour ouvrir le tableau de bord d'administration Django et le chemin 'books/' est défini pour appeler le BulkInsert.as_view() méthode qui insère cinq enregistrements dans la table books et renvoie les enregistrements au fichier modèle.

URL.py

# Importer le module d'administration
de Django.administrateur d'importation de contribution
# Chemin d'importation et module d'inclusion
de Django.chemin d'importation des URL
à partir des vues d'importation bookapp
urlpatterns = [
# Définir le chemin pour l'administrateur
chemin('admin/', admin.placer.URL),
chemin('livres/', vues.BulkInsert.as_view()),
]

Ouvrez le Django Administration Dashboard pour vérifier si les données sont correctement insérées ou non à l'aide du bulk_create() une fonction.

Les enregistrements insérés de la livres le tableau s'affichera dans le navigateur après l'exécution de 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 la table de la base de données à l'aide de cette méthode a été montré dans ce didacticiel pour aider les utilisateurs de Django à comprendre la logique derrière le processus.

Comment capturer et diffuser votre session de jeu sur Linux
Dans le passé, jouer à des jeux n'était considéré qu'un passe-temps, mais avec le temps, l'industrie du jeu a connu une croissance énorme en termes de...
Meilleurs jeux à jouer avec le suivi des mains
Oculus Quest a récemment introduit l'idée géniale du suivi manuel sans contrôleurs. Avec un nombre toujours croissant de jeux et d'activités qui exécu...
Comment afficher la superposition OSD dans les applications et jeux Linux en plein écran
Jouer à des jeux en plein écran ou utiliser des applications en mode plein écran sans distraction peut vous couper des informations système pertinente...