Django

Comment utiliser les sérialiseurs Django

Comment utiliser les sérialiseurs Django
Le sérialiseur est utilisé dans Django pour convertir les instances de modèle ou les ensembles de requêtes en types de données pris en charge par python qui peuvent être facilement rendus en JSON, XML ou d'autres formats. La désérialisation peut également être effectuée par des sérialiseurs pour récupérer les données d'origine à partir des données sérialisées. Cette fonctionnalité est disponible dans Django REST Framework. Ainsi, les utilisateurs doivent installer ce framework pour utiliser les sérialiseurs. Toute page Web du site Web peut contenir du HTML, du CSS et des données des tables de la base de données. Mais l'API ne comprend pas ces types de contenu et ne peut comprendre que les données brutes, c'est-à-dire les données JSON. Comment les sérialiseurs peuvent être utilisés pour convertir l'instance de modèle au format JSON a montré dans ce didacticiel.

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 pour les sérialiseurs :

Exécutez la commande suivante pour créer une application Django nommée application de série.

$ python3 gérer.py startapp serialapp

Exécutez la commande suivante pour créer l'utilisateur permettant d'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 createsuperuser

Exécutez la commande suivante pour installer Django REST Framework.

$ pip3 installer djangorestframework

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

INSTALLED_APPS = [
… .
'rest_framework',
'serialapp'
]

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

Ouvrez le des modèles.py fichier de la application de série dossier et ajoutez le script suivant pour définir la structure de les clients les tables. Client la classe est définie pour créer une table nommée les clients avec nom, adresse, email, contact_no, et créé des champs. Ici, nom, e-mail, et contact_no les champs stockeront les données de caractère, l'adresse le champ stockera les données de texte, et créé le champ stockera les données DateTime.

des modèles.py

# Importer le module modèles
de Django.modèles d'importation de base de données
# Définir la classe de modèle pour la table clients
classe Client(modèles.Modèle):
nom = modèles.CharField(max_length=100)
adresse = modèles.Champ de texte()
email = modèles.CharField(max_length=50)
contact_no = modèles.CharField(max_length=20)
créé = modèles.DateTimeField(auto_now_add=True)

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 serialapp

Exécutez le émigrer commande pour exécuter les commandes SQL et créer toutes les tables dans la base de données définie 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, le consommateur classe des modèles est enregistrée en utilisant le registre() méthode pour afficher le les clients 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 Client
de .modèles import Client
# Enregistrez le modèle client
administrateur.placer.s'inscrire (client)

URL.py

de Django.chemin d'importation des URL
de Django.administrateur d'importation de contribution
urlpatterns = [
# Définir le chemin pour l'administrateur
chemin('admin/', admin.placer.URL),
]

Ajouter des enregistrements dans la table :

Ouvrez la page d'administration de Django et ajoutez des enregistrements dans le les clients tableau affiché au navigateur au format JSON. Ici, trois enregistrements ont été insérés.

Modifier les vues.py :

Ouvrez le vues.py fichier de la application de série et remplacez le contenu par le script suivant. Liste de clients la classe est définie pour sérialiser tous les enregistrements des clients et renvoyer les données au navigateur au format JSON. Détail du client la classe est définie pour sérialiser l'enregistrement client particulier en fonction de la valeur de l'ID et renvoyer les données du navigateur au format JSON. ClientSérialiseur est un fichier de sérialisation qui a été créé dans la prochaine partie de ce tutoriel.

vues.py

# Importer des génériques depuis le framework REST Django
à partir de rest_framework importer des génériques
# Importer le modèle client
de .modèles import Client
# Importer CustomerSerializer à partir de sérialiseurs
de .les sérialiseurs importent CustomerSerializer
# Définir la classe pour convertir tous les enregistrements de la table clients en JSON
class CustomerList(generics.ListCreateAPIView) :
jeu de requêtes = client.objets.tout()
serializer_class = CustomerSerializer
# Définir la classe pour convertir l'enregistrement particulier de la table clients en JSON
class CustomerDetail(generics.RécupérerUpdateDestroyAPIView) :
jeu de requêtes = client.objets.tout()
serializer_class = CustomerSerializer

Créer un sérialiseur :

Créer sérialiseurs.py fichier au même emplacement que le vues.py fichier avec le script suivant. ModèleSérialiseur la classe est utilisée ici pour créer ClientSérialiseur classe qui renvoie la classe des sérialiseurs avec les champs du modèle Customer. Les champs du modèle Client qui seront convertis au format JSON sont mentionnés dans le Méta classer.

sérialiseurs.py

# Importer le module de sérialisation depuis Django REST Framework
à partir des sérialiseurs d'importation rest_framework
# Importer le modèle client
de .modèles import Client
# Définir la classe de sérialiseurs personnalisés pour convertir les champs du modèle client en JSON
class CustomerSerializer(sérialiseurs.ModèleSérialiseur) :
classe Meta :
modèle = client
champs = ('id', 'nom', 'adresse', 'email', 'contact_no')

Modifier les URL.fichier py :

Modifier le contenu de la URL.py fichier avec le script suivant. Dans le script, le 'les clients/' chemin est défini pour afficher tous les enregistrements du les clients table au format JSON, et le 'les clients//' chemin est défini pour afficher les données particulières du les clients table au format JSON basée sur la valeur de l'ID.

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
# Importer les vues
à partir des vues d'importation serialapp
# Importez format_suffix_patterns depuis Django REST Framework
de rest_framework.urlpatterns importer format_suffix_patterns
urlpatterns = [
# Définir le chemin pour l'administrateur
chemin('admin/', admin.placer.URL),
# Définir le chemin pour obtenir toutes les données des clients au format JSON
chemin('clients/', vues.Liste de clients.as_view()),
# Définir le chemin pour obtenir les données client particulières en fonction de l'ID au format JSON
chemin('clients//', vues.Détail du client.as_view()),
]
urlpatterns = format_suffix_patterns(urlpatterns)

Tous les enregistrements de la table clients seront affichés au format JSON si l'URL suivante s'exécute.

http://localhost:8000/clients

L'enregistrement du deuxième client sera affiché au format JSON si l'URL suivante s'exécute.

http://localhost:8000/customers/2

Conclusion:

L'utilisation de sérialiseurs dans l'application Django pour convertir l'instance de modèle au format JSON a été montrée dans ce tutoriel à l'aide d'un simple script. Les utilisateurs de Django comprendront le but de l'utilisation des sérialiseurs et les appliqueront dans leur application si nécessaire après avoir lu ce tutoriel.

Meilleurs jeux de ligne de commande pour Linux
La ligne de commande n'est pas seulement votre plus grand allié lorsque vous utilisez Linux, elle peut également être une source de divertissement car...
Meilleures applications de mappage de manette de jeu pour Linux
Si vous aimez jouer à des jeux sur Linux avec une manette de jeu au lieu d'un système de saisie clavier et souris typique, il existe des applications ...
Outils utiles pour les joueurs Linux
Si vous aimez jouer à des jeux sur Linux, il est probable que vous ayez utilisé des applications et des utilitaires comme Wine, Lutris et OBS Studio p...