Skip to content

ElieOko/opt_solution_django_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Documentation du projet

Utilisez le projet existant dans ce réferentiel

Télécharger le projet

  • Installez django et django restframework avec cette commande pip install django djangorestframework django-filter
  • Ensuite accèdez dans le projet avec cd opt_solution
  • Lancez le serveur avec python manage.py runserver

Pour acceder dans le compte admin voici la procédure

Voici les identifiants du super utilisateur

  • nom d'utilisateur : elieo
  • mot de passe : open

Pour acceder dans notre api voici la procédure

Good@fun


Construire le projet à partir de zéro

Lorsque vous partez d'un projet à zéro procéder ainsi pour créer votre projet

  • Assurez-vous que Python est installé sur votre machine pour vérifier si python est correctement installé sur votre machine taper la commande python --version

  • Assurez-vous d'avoir soit VSCode ou pycharm

  • Créez un nouveau projet dans l'environnement de développement integré de votre choix

  • Installez django à partir du terminal de votre projet
    pip install django

  • Créez votre projet
    django-admin startproject opt_solution

  • Accèdez dans votre projet
    cd opt_solution

  • Créez votre application
    django-admin startapp params_basic

  • Ajoutez votre application dans le fichier settings.py plus précisement dans le bloc INSTALLED_APPS dans notre cas notre application c'est params_basic
    INSTALLED_APPS =[

   'params_basic'
   ]

  • Créez un super utilisateur pour votre projet
    python manage.py createsuperuser
  • Migration des données par défauts et de nos futurs donnée
    python manage.py makemigrations
    python manage.py migrate
  • Pour lancez le serveur taper la commande suivante
    python manage.py runserver
  • Comme dans ce projet nous utilisons des API nous allons installer django rest framework]
    pip install djangorestframework
  • Ensuite ajouter le package que vous venez d'installez dans le fichier settings.py se trouvant dans notre application ajoutez rest_framework
    INSTALLED_APPS =[

   'rest_framework'
   ]

Model simple

Qu'est-ce que sait un model ?

Un modèle est la source unique et définitive d'informations sur vos données . Il contient les champs et comportements essentiels des données que vous stockez, comme le dit monsieur Hervé le modèle c'est la couche logique de nos donnée.

  • Importation

from django.db import models

  • Structure de la classe

class TimeStampModel(models.Model):
  created_at = models.DateTimeField(auto_now_add=True)
  updated_at = models.DateTimeField(auto_now=True)

  class Meta:
    abstract = True

class Option(TimeStampModel):
  libelleOption = models.CharField(max_length=100, null=True, blank=True)

  def __str__(self):
     return self.libelleOption


Serializers Simple

Qu'est-ce que sait un serializer ?

Les sérialiseurs sont utilisés pour convertir des types de données complexes, tels que les instances de modèle Django, en types de données Python qui peuvent être facilement restitués en JSON, XML ou d'autres types de contenu . Les sérialiseurs assurent également la désérialisation, permettant aux données analysées d'être reconverties en types complexes après avoir d'abord validé les données entrantes.

  • Créez un fichier serializers.py dans votre application

  • Importation

from rest_framework import serializers
from .models import Option


  • Structure de la classe

class OptionSerializer(serializers.ModelSerializer):
  class Meta:
    model = Option
    # Afficher tous les champs
    fields = '__all__'
     # Afficher des champs personalisés
     fields = ['libelleOption','Autrechamps']


Enregistrez vos models dans le fichier admin.py de votre application

admin.site.register(Option)
...

View simple

  • Importation

from .serializer import OptionSerializer
from .models import Option

class OptionViewSet(viewsets.ModelViewSet):
   queryset = Option.objects.all()
   serializer_class = OptionSerializer

Créez un fichier url dans votre application

  • url.py dans ce fichier nous définirons un router pour permettre le routage de nos differentes viewset
  • Structure du code

from rest_framework import routers
from .views import OptionViewSet\

router = routers.DefaultRouter()
router.register(r'option', OptionViewSet)
urlpatterns = router.urls

Inclure votre fichier url.py contenant le routage des differents vues dans votre fichier urls.py se trouvant la repertoire principal du projet

  • Structure du code

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('params_basic.url'))
]

  • Lancez votre serveur depuis le terminal avec
  • notre mini simple api se trouve dans la route /api

python manage.py runserver

Api (Application programming interface)

  • Quelques méthodes
    POST
    GET
    PUT
    DELETE

ViewSet Action

Les routeurs par défaut inclus dans le framework REST fourniront des routes pour un ensemble standard d'actions

Ameliorant notre ViewSet avec ces méthodes inclut par défaut dans notre ViewSet

create
list
update
destroy
retrieve

  • Importation

from rest_framework import viewsets, permissions, status
from rest_framework.response import Response
from .serializer import OptionSerializer
from .models import Option

class OptionViewSet(viewsets.ModelViewSet):
   queryset = Option.objects.all()
   serializer_class = OptionSerializer
   # Protection de la route avec l'authentification
   permission_classes = [permissions.IsAuthenticated]

   def create(self, request, *args, **kwargs):
      serializer = OptionSerializer(data=request.data)
      if serializer.is_valid():
        return Response(status=status.HTTP_201_CREATED, data={"message": "Enregistrement réussi avec succès",'option': serializer.data})
      return Response({'message': serializer.errors}, status=status.HTTP_400_BAD_REQUEST)

   def list(self, request, *args, **kwargs):
      option = Option.objects.all()
      serializer = OptionSerializer(option, many=True)
      return Response(data={'options': serializer.data})

   def update(self, request, *args, **kwargs):
      option = self.get_object()
      serializer = SectionSerializer(option, data=request.data)
      if serializer.is_valid():
        serializer.save()
        return Response(data={"message": "Modification réussie avec succès", 'option': serializer.data}, status=status.HTTP_200_OK)
      return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

   def destroy(self, request, *args, **kwargs):
      option = self.get_object()
      option.delete()
      return Response(status=status.HTTP_204_NO_CONTENT, data={"message": "Suppression réussie avec succès"})

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages