Python Avancé : Web Services + ORM

Loader DigitalCityChargement...

Python Avancé : Web Services + ORM

(Réf.100613)
5
Jour(s)
For a Fee
Day

Organised by :

What are the aims of the training?

Construire une API en Python et implémenter une couche d'accès aux données avec un ORM

What do you need to know to follow the training?

Avoir suivi le stage "Python : Initiation + Approfondissement" ou notions équivalentes

Training programme

Connaître le besoin et l'écosystème

- Présentation des Web Services (WS) : fonctionnement, intérêt, interopérabilité
- Architecture orientée service (SOA) : composantes, technologies
- Technologies : Architecture REST
- Design et documentation : Swagger
- Outils de test de services web

 

Interroger des services web REST

- Outils d'interrogation en Python
- Gestion des paramètres d'accès aux API
- Types d'authentification aux API RESTful (BASIC HTTP, Bearer Token etc.)

Atelier : Interroger des services web ouverts et avec authentification

 

Implémenter un service web REST

- Rappels sur l'architecture REST
- Composantes et méthodes d'appel
- Sérialisation des données
- Conseils pour la création de points d'entrée REST

 

Implémenter un service web avec Python

- Bibliothèques d'API REST : FastAPI, Flask ou Sanic
- Déclarer des routes et des méthodes
- Accepter des paramètres
- Validation des paramètres et gestion des erreurs
- Authentification (BASIC, Bearer Token)

Atelier : Créer un service web avec FastAPI

 

Implémenter un service web avec Django

- Découverte de l'écosystème des frameworks REST pour Django (DRF, Ninja)
- Déclarer des routes et des méthodes
- Accepter des paramètres
- Validation des paramètres et gestion des erreurs
- Authentification (BASIC, Bearer Token)
- Gestion des droits dans Django
- Mise en cache (Memcached ou Redis)

Atelier : Créer un service web avec Django-Ninja

 

Déploiement d'un service web

- Architecture de base d'un déploiement Django
- Architecture de base d'un déploiement FastAPI


Manipuler des bases de données en programmation objet (ORM)

- Principe des ORM (Pattern DAO)
- Bibliothèques d'ORM Python : SQLObject, SQLAlchemy, Peewee, PonyORM, Django

 

Découverte d'un ORM

- Choix d'un ORM
- Découvrir les concepts de base des ORMs
- Mapping : modèles, colonnes, métadonnées de tables
- Gérer son schéma de données
- Concept de migrations de schéma
- Gestion des relations entre tables : n à 1, 1 à 1, n à n
- Optimisations (syndrome des n+1 requêtes, etc.)

Atelier : Découverte de l'ORM Peewee et Django

 

Ecrire des requêtes avec un ORM

- Sélections de base, filtres
- Jointures en SQL et jointures en objet
- Fonctions d'agrégation, scalaires et de fenêtrage
- Désérialisation lazy/eager

Atelier : Développer une couche modèle efficacement

 

Découvrir des fonctionnalités avancées

- Mettre en cache (ex. Redis ou autres)
- Outils de mise en cache avec Django
- Siganux (intercepteurs, event-listeners)

Atelier : Découvrir les outils de cache pour ORM

2 session(s) pour cette formation