Cursus Maître avec Django Rest Framework (DRF)
- Les variables et les Opérateurs
- Les conditions et les Boucles
Exercice: Gukora fonctions isubiriza ijambo riri muri phrase idakoresheje fonction native replace()
- Les listes et les fonctions y relatives (
sum,all,any,sorted...) - Les chaînes de caractère:
Exercice:
- script iguma ikora table de multiplication ibireka ari uko dushizemwo 0
- script icapa carre yanditsemwo nombre de coté hagati
* * * * *
* *
* 5 *
* *
* * * * *
- Expression regulières
- Manipulation des 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
- Manipulation des dates
- Le module Path
- [OPTIONNEL] logging
Exercice:
-
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"
-
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.
- Comprehensions et expressions Lambda (
map,filter,reduce) - Comprendre les itérateurs et générateurs
- Le caching
functools.lru_cache()
héritage multiple,encapsulation,polymorphisme.- Attributs et méthodes statiques
- Les closures.
- Les décorateurs.
- [OPTIONNEL] la gestion avancée de memoire
gcet__slots__
- Les models et les requetes
- Django Admin
- Django Admin en profondeur: filtres, actions, import-export, save_model, save_queryset, has_add_permission, list_prefetch_related, autocomplete_fields...
- 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)- to_representation et les methods fields
- Les relations complexes :
OneToMany,ManyToMany. - [OPTIONNEL] GraphQL
- Validation avancée des données : regex, dates avec des formats dynamiques.
- JWT Authentication
- Gestion des permissions basée sur des rôles
(RBAC)
- Protection contre les attaques :
CSRF,XSSetSQL injection,brute-force,Honeypot - Limitation des Requêtes: throttling
- Les tests avec pytest
- Profilage et benchmarking
- Cache et optimisation des endpoints
- Mise en file d'attente des tâches avec Celery
- planification des tâches avec Celery
- [OPTIONNEL] Gestionnaire de taches personnalisé:
- [OPTIONNEL] Multitenancy avec django-tenants
- [OPTIONNEL] Gestion des notifications et WebSockets
NB: Souvenez vous de faire un like pour chaque video que vous avez consultée