Dans cet article, j'expliquerai Rest Framework. Avant d'entrer dans les détails techniques, parlons un peu de ce qu'est Rest Framework.
Rest Framework est un framework avancé qui nous permet de coder un back-end commun pour les applications mobiles, les applications Web et les applications de bureau. Par exemple, vous pouvez utiliser un serveur back-end que vous avez codé avec Rest Framewok à la fois dans votre application mobile et dans votre application Web.
Vous pouvez développer vos applications en utilisant Rest Framework avec des technologies frontales telles que Angular, React, Vue. Étant donné que Rest Framework donne des réponses dans une structure commune en programmation, vous pouvez utiliser ces sorties avec Angular ou React. Alors, quels sont les types de ces sorties ? Bien sûr, des structures comme JSON. En option, vous pouvez bien sûr envoyer ces sorties dans différentes structures vers le front-end. Passons maintenant au codage
Créer un projet
1) django-admin startproject nom du projet
Nous avons créé notre projet. Maintenant, exécutons notre projet.
2) python manage.py runserver
Ensuite, écrivons les commandes nécessaires pour créer les tables nécessaires dans notre base de données.
3) python manage.py migre
N'oublions pas d'ajouter l'application que nous avons créée au répertoire INSTALLED_APPS sous le fichier settings.py.
Tout va bien. Nous pouvons maintenant passer aux étapes nécessaires pour le reste du cadre.
Pour installer Rest Framework sur notre ordinateur, nous devons exécuter les commandes suivantes dans notre terminal.
1) pip install djangorestframework
par exemple ;
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'POSTAPP',
]
Maintenant que nous avons ajouté le framework Rest, nous pouvons commencer à créer l'API. Pour ce faire, nous devons créer un dossier appelé API et quelques fichiers dans le dossier d'application que nous avons créé. Ajoutons ces fichiers :
VOTRE_PROJET/
API/
init.py
vues.py
urls.py
sérialiseurs.py
Avec le fichier ** init.py**, on indique que ce dossier est un module Python
Le fichier views.py** est le fichier dans lequel nous écrirons les classes ou fonctions qui fourniront les réponses que nous enverrons aux requêtes entrantes.
Le fichier **urls.py est le fichier dans lequel nous définirons nos URL API, comme vous pouvez le deviner d'après la structure de Django.
Le fichier serializers.py est le fichier dans lequel nous allons écrire les structures qui mettront nos jeux de requêtes entrants dans les formats souhaités (JSON, par exemple). Nous entrerons dans les détails progressivement.
Tout d'abord, allons dans le fichier urls.py fourni dans le dossier principal de notre projet et définissons les chemins d'URL en fonction du dossier API que nous avons créé.
modèles d'url = [
chemin('admin/', admin.site.urls),
path("api/post/",include("VOTRE_PROJET.api.urls",namespace="post")),
]
Nous avons déjà un chemin d'accès administrateur. Nous avons également ajouté un nouveau chemin en tant qu'api/post. Avec la méthode Include, nous avons redirigé les requêtes arrivant vers api/post/ vers notre fichier url dans le dossier API que nous avons créé.
Maintenant, écrivons rapidement un modèle pour le message que nous avons créé. Venons-en au fichier models.py dans le dossier YOUR_PROJECT.
classe PostModel(models.Model):
Auteur = models.ForeignKey(User,on_delete=models.CASCADE)
Titre = models.CharField(max_length=50)
Contenu = models.TextField()
Draft = models.BooleanField(default=False)
ModifiedDate = models.DateTimeField(editable=False)
Après avoir créé notre modèle, écrivons les codes nécessaires dans notre terminal pour créer des tables dans la base de données.
python manage.py makemigrations
Avec ces codes, nous avons créé les fichiers Python nécessaires à la création de tables dans notre base de données. Nous exécuterons les commandes suivantes pour créer les tables.
*python manage.py migrer *
Venons-en maintenant à notre fichier urls.py vide dans le dossier api sous le répertoire YOUR_PROJECT que nous avons créé.
à partir du chemin d'importation de Django.urls
à partir de .views importer YourProjectAPIView
app_name="post"
modèles d'URL = [
path("list/",YourProjectAPIView.as_view(),name="votre_projet"),
]
Tout d'abord, nous avons spécifié un nom d'application avec app_name=”post”.
Maintenant, nous avons essayé d'importer les vues que nous n'avons pas encore créées et de les utiliser selon notre chemin. Créons immédiatement les vues dont nous avons écrit les noms dans notre fichier vues.py sous le répertoire VOTRE_PROJET/api.
Tout d'abord, créons une vue dans laquelle nous enverrons toutes les publications de la base de données avec la requête dans une structure JSON.
à partir de POSTAPP.models, importez PostModel
à partir de rest_framework.generics importer ListAPIView
classe PostListAPIView(ListAPIView) :
serializer_class = PostSerializer
queryset = PostModel.objects.all()
Expliquons ce que nous avons fait ici. Nous avons créé une vue à l'aide de la classe ListAPIView, qui est prête pour le processus de listage dans Rest Framework. Tout d’abord, nous déterminons quel modèle nous renverrons avec la variable queryset. Et nous devons spécifier notre classe de sérialisation qui sérialisera les données provenant de ce modèle, c'est-à-dire l'ensemble de requêtes. Après tout, nous n’enverrons pas d’ensemble de requêtes à l’autre partie. Nous enverrons l'objet JSON sérialisé. La structure qui convertira l'ensemble de requêtes en objet JSON sera les sérialiseurs que nous aurons créés.
Pour l'instant, j'ai créé un sérialiseur appelé PostSerializer dans la variable serializer_class. Nous allons créer ce sérialiseur dans le fichier serializers.py dans le même répertoire. Créons-le maintenant.
à partir des sérialiseurs d'importation rest_framework
classe YourProjectSerializer(serializers.ModelSerializer) :
classe Meta :
modèle = PostModèle
field = ["Auteur", "Titre", "Contenu", "Brouillon", "Date modifiée"]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!