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 requêtes en types de données pris en charge Python qui peuvent être facilement rendues en JSON, XML ou d'autres formats. La désérialisation peut également être effectuée par les sérialiseurs pour récupérer les données d'origine 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 base de données. Mais l'API ne comprend pas ces types de contenu, et il peut comprendre les données brutes uniquement, c'est-à-dire des données JSON. Comment les sérialiseurs peuvent être utilisés pour convertir l'instance du modèle en format JSON s'est montré 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 pour les sérialiseurs:

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

$ python3 gérer.py startApp SerialApp

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

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

$ pip3 installer djangorestframework

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

Installé_apps = [
… .
'rest_framework',
'SerialApp'
]]

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

Ouvrir le des modèles.py fichier à partir du serialapp dossier et ajoutez le script suivant pour définir la structure de clients les tables. Client La classe est définie pour créer un tableau nommé clients avec nom, adresse, e-mail, contact_no, et créé des champs. Ici, nom, e-mail, et contact_no Les champs stockeront les données des caractères, 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 des modèles
De Django.Modèles d'importation DB
# Définissez la classe de modèle pour le tableau des clients
Client de classe (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)

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 serialapp

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, le consommateur La classe des modèles est enregistrée en utilisant le registre() Méthode pour afficher le clients Tables du tableau de bord de l'administration Django.

administrer.py

# Importer le module d'administration
De Django.contriber d'importation administrateur
# Importer le modèle client
depuis .Modèles Importer le client
# Enregistrer le modèle client
administrer.placer.inscrire (client)

URL.py

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

Ajouter des enregistrements dans le tableau:

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

Modifier les vues.py:

Ouvrir le vues.py fichier à partir du serialapp et remplacer 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. ClientDetail 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. ClitorSerializer est un fichier de sérialiseurs qui a été créé dans la prochaine partie de ce tutoriel.

vues.py

# Importer des génériques à partir du framework Django REST
de rest_framework Import génériques
# Importer un modèle client
depuis .Modèles Importer le client
# Importer CustomerSerializer à partir de sérialiseurs
depuis .les sérialiseurs importent un service de clientèle
# Définissez la classe pour convertir tous les enregistrements de la table des clients en JSON
Class CustomerList (génériques.ListCreatEAPIVIEW):
QuerySet = client.objets.tous()
serializer_class = CustomerSerializer
# Définissez la classe pour convertir l'enregistrement particulier de la table des clients en JSON
classe CustomerDetail (génériques.RétriveupdatestRoyapiview):
QuerySet = client.objets.tous()
serializer_class = CustomerSerializer

Créer un sérialiseur:

Créer serialiseurs.py fichier au même emplacement du vues.py fichier avec le script suivant. ModelSerializer La classe est utilisée ici pour créer ClitorSerializer classe qui renvoie la classe des sérialiseurs avec les champs du modèle client. Les champs de modèle client qui seront convertis au format JSON sont mentionnés dans le Méta classe.

serialiseurs.py

# Module d'importation de sérialiseurs à partir du framework Django REST
à partir de sérialiseurs d'importation rest_framework
# Importer un modèle client
depuis .Modèles Importer le client
# Définissez la classe de sérialiseurs personnalisés pour convertir les champs de modèle client en JSON
classe Curvitacyserializer (sérialiseurs.ModelSerializer):
Classe Meta:
modèle = client
fields = ('id', 'name', 'adresse', 'e-mail', 'contact_no')

Modifier les URL.fichier py:

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

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 les vues
à partir des vues d'importation SerialApp
# Importer Format_Suffix_Patterns à partir du framework Django REST
de rest_framework.UrlPatterns Import Format_Suffix_Patterns
urlpatterns = [
# Définir le chemin de l'administrateur
Path ('admin /', admin.placer.URL),
# Définissez le chemin pour obtenir toutes les données des clients au format JSON
Path ('Clients /', vues.Liste de clients.as_view ()),
# Définissez le chemin pour obtenir les données clients particulières en fonction de l'ID au format JSON
PATH ('Clients //', vues.ClientDetail.as_view ()),
]]
urlpatterns = format_suffix_patterns (urlpatterns)

Tous les enregistrements du tableau des clients seront affichés au format JSON si l'URL suivante s'exécutera.

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 / clients / 2

Conclusion:

L'utilisation de sérialiseurs dans l'application django pour convertir l'instance de modèle au format JSON s'est montrée dans ce tutoriel en utilisant un script simple. Les utilisateurs de Django comprendront l'objectif d'utiliser des sérialiseurs et de les appliquer dans leur application si nécessaire après avoir lu ce tutoriel.