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',
]
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
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']
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.
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)),
]
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.