Exercices Django

Exercice 4 Django Framework Corrigé S1

Création d'une API REST avec Django Rest Framework

Objectif :

  • Créer une API REST simple pour manipuler les données d'un modèle.

Instructions :

  1. Installez et configurez Django Rest Framework dans votre projet.
  2. Créez un modèle Task avec les champs suivants :
    • title (Titre de la tâche, type CharField)
    • description (Description de la tâche, type TextField)
    • completed (Statut d'achèvement, type BooleanField)
  3. Créez un serializer pour le modèle Task.
  4. Créez des vues API qui permettent de lister, créer, mettre à jour et supprimer des tâches via des requêtes HTTP.
  5. Testez votre API avec un outil comme Postman ou cURL.

1. Installer et configurer Django Rest Framework (DRF)

Commencez par installer Django Rest Framework si ce n'est pas déjà fait.

pip install djangorestframework

Ensuite, ajoutez rest_framework à la liste des applications installées dans le fichier settings.py.

settings.py

INSTALLED_APPS = [
    ...
    'rest_framework',
]

2. Créer le modèle Task

Dans le fichier models.py, créez le modèle Task avec les champs demandés.

models.py

# app/models.py
from django.db import models

class Task(models.Model):
    title = models.CharField(max_length=255)
    description = models.TextField()
    completed = models.BooleanField(default=False)

    def __str__(self):
        return self.title

3. Créer un serializer pour le modèle Task

Un serializer est utilisé pour convertir les instances du modèle en JSON (et inversement). Créez un fichier serializers.py et ajoutez le code suivant.

serializers.py

# app/serializers.py
from rest_framework import serializers
from .models import Task

class TaskSerializer(serializers.ModelSerializer):
    class Meta:
        model = Task
        fields = ['id', 'title', 'description', 'completed']

4. Créer des vues API pour les tâches

Dans le fichier views.py, implémentez des vues API en utilisant des viewsets ou des class-based views (CBV) pour gérer les opérations CRUD.

views.py

# app/views.py
from rest_framework import viewsets
from .models import Task
from .serializers import TaskSerializer

class TaskViewSet(viewsets.ModelViewSet):
    queryset = Task.objects.all()
    serializer_class = TaskSerializer

Le TaskViewSet permet de gérer toutes les opérations CRUD de manière simple. Il inclut des fonctionnalités pour lister, créer, mettre à jour et supprimer des tâches.

5. Configurer les URL

Ensuite, configurez les URL pour votre API. Dans le fichier urls.py de l'application, ajoutez le code suivant pour définir les routes de l'API.

urls.py

# app/urls.py
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import TaskViewSet

router = DefaultRouter()
router.register(r'tasks', TaskViewSet)

urlpatterns = [
    path('', include(router.urls)),
]

6. Tester l'API avec Postman ou cURL

Lancez le serveur de développement avec la commande :

python manage.py runserver

 

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.