Skip to content

INGANZAMARUMPU/HOGI-Backend-Avance-2025

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Cursus Maître avec Django Rest Framework (DRF)

Phase 1 : Maîtriser Python

Jour 1. Programmation Avancée avec Python

Exercice: Gukora fonctions isubiriza ijambo riri muri phrase idakoresheje fonction native replace()

Jour 2. Manipulation avancée des données

Exercice:

  1. script iguma ikora table de multiplication ibireka ari uko dushizemwo 0
  2. script icapa carre yanditsemwo nombre de coté hagati
* * * * *
*       *
*   5   *
*       *
* * * * *

Jour 3. Les fichiers

Exercice: Script itora fichier irimwo text igatanga iyindi fichier ariko ahari amajambo y'idome 5 iyasubira ari hagari y'utunyenyeri.

Akarorero: Siko vyari vyifashe => siko * vyari * vyifashe

Jour 4. Les fichiers

Exercice:

  1. kora ama scripts akora ivyo

    • crea ama fichier 20: 1.txt, 2.txt,....
    • ayari pair yahindure extension abe .csv
    • ayari divisible par 3 yahe extexion .json
    • ayari < 10 yarenomme agire 0 kuntango 01.txt, 02.txt
    • ayari < 5 yahanagure
    • fichier ya 20 yandikemwo "OK NAHEJEJE"
  2. script ifata fichier igatanga iyindi fihier ahari date hose ikahasubiriza imisi iba isigaye kugira ukwezi guhere

Akarorero:

15/04/2019 des flammes stylisées, rouge et or. => 15e jours avant la fin de 04 2019 des flammes stylisées, rouge et or.

Jour 5. Exercices

Jour 6. La Performance

Jour 7. Programmation Orientée Objet

Jour 8. Programmation Fonctionnelle

Phase 2 : Maîtriser Django Rest Framework

Jour 9. Django

  • Les models et les requetes
  • Django Admin

Jour 10. Django

  • Django Admin en profondeur: filtres, actions, import-export, save_model, save_queryset, has_add_permission, list_prefetch_related, autocomplete_fields...

Jour 11. Django Rest Framework (DRF)

  • ModelViewset
  • La Pagination
  • Les Filtres
  • Les actions
@transaction.atomic
def destroy(self, request, *args, **kwargs):
    instance = self.get_object()
    for item in instance.factureitem_set.all():
        item.produit.quantite += item.quantite
        item.produit.save()
    instance.delete()
    return Response({"message": "Facture supprimée et produit ajusté"}, 200)

@transaction.atomic
@action(detail=False, methods=['POST'], serializer_class = MontantSerializer)
def augmenter(self, request):
    factures = self.get_queryset()
    serializer = self.get_serializer(data=request.data)
    serializer.is_valid(raise_exception=True)
    data = serializer.validated_data
    for facture in factures:
        facture.total = models.F('total') + data['montant']
        facture.save()

    factures = self.get_queryset()
    serializer = FactureSerializer(factures, many=True)
    return Response(serializer.data, 200)

Jour 12. Serialization

  • to_representation et les methods fields
  • Les relations complexes : OneToMany, ManyToMany.
  • [OPTIONNEL] GraphQL

Jour 13. Permissions

  • Validation avancée des données : regex, dates avec des formats dynamiques.
  • JWT Authentication
  • Gestion des permissions basée sur des rôles (RBAC)

Jour 14. La Securité

  • Protection contre les attaques : CSRF, XSS et SQL injection, brute-force, Honeypot
  • Limitation des Requêtes: throttling

Jour 15. Les tests

Phase 3 : La Performance

Jour 16. Performance de l'API

Jour 17. Caching

  • Cache et optimisation des endpoints

Jour 18. Les taches

Jour 19. SaaS

Jour 20. Django channels

  • [OPTIONNEL] Gestion des notifications et WebSockets

NB: Souvenez vous de faire un like pour chaque video que vous avez consultée

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages