Apprenez le développement d'API Python dans l'un des cours les plus complets jamais proposés sur le sujet. Vous construirez une API complète en Python en utilisant FastAPI. Vous apprendrez les fondamentaux de la conception d'API, y compris les routes, la sérialisation/désérialisation, la validation de schéma et les modèles. Vous découvrirez également SQL, les tests avec pytest et comment mettre en place un pipeline CI/CD en utilisant les actions GitHub.
⭐️ Contenu du cours
00:00 Introduction
06:33 Aperçu du projet
11:22 Installation de Python sur Mac
13:15 Installation et configuration de VS Code sur Mac
16:37 Installation de Python sur Windows
18:30 Installation et configuration de VS Code sur Windows
22:11 Notions de base sur les environnements virtuels Python
24:35 Environnement virtuel sur Windows
28:56 Environnement virtuel sur Mac
34:17 Installation des dépendances avec pip
36:21 Démarrage de FastAPI
39:23 Opérations de chemin
53:22 Introduction à man
57:34 Requêtes HTTP
1:07:29 Validation de schéma avec Pydantic
1:22:45 Opérations CRUD
1:29:44 Stockage dans un tableau
1:34:06 Création
1:38:15 Collections Postman et sauvegarde des requêtes
1:39:47 Récupérer un
1:48:10 L'ordre des chemins compte
1:52:46 Changer les codes d'état de réponse
2:01:49 Suppression
2:10:31 Mise à jour
2:18:02 Documentation automatique
2:21:34 Packages Python
2:24:11 Introduction à la base de données
2:28:54 Installation de Postgres sur Windows
2:31:28 Installation de Postgres sur Mac
2:34:26 Schéma et tables de la base de données
2:44:35 Gestion de Postgres avec l'interface graphique PgAdmin
3:12:10 Votre première requête SQL
3:19:43 Filtrer les résultats avec "where"
3:22:55 Opérateurs SQL
3:26:38 IN
3:28:07 Correspondance de motifs avec LIKE
3:31:59 Ordonnancement des résultats
3:36:27 LIMIT & OFFSET
3:39:21 Modification des données
3:53:48 Configuration de la base de données de l'application
3:58:21 Connexion à la base de données avec Python
4:08:00 CRUD de la base de données
4:31:18 Introduction à l'ORM
4:35:33 Configuration de SQLALCHEMY
4:55:25 Ajout de la colonne CreatedAt
5:00:59 Récupérer tout
5:07:55 Créer
5:15:50 Récupérer par ID
5:19:50 Supprimer
5:22:31 Mettre à jour
5:28:21 Pydantic vs Modèles ORM
5:32:21 Plongée approfondie dans les modèles Pydantic
5:38:57 Modèle de réponse
5:50:08 Création de la table des utilisateurs
5:54:50 Opération de chemin d'enregistrement des utilisateurs
6:03:27 Hachage des mots de passe
6:08:49 Réfracteur de la logique de hachage
6:10:32 Récupérer l'utilisateur par ID
6:17:13 Routeurs FastAPI
6:27:34 Préfixe de routeur
6:30:31 Étiquettes de routeur
6:32:49 Notions de base sur les jetons JWT
6:47:03 Processus de connexion
7:00:44 Création de jeton
7:09:58 OAuth2 PasswordRequestForm
7:13:23 Vérifier si l'utilisateur est connecté
7:25:21 Correction des bugs
7:27:59 Protection des routes
7:36:17 Tester le jeton expiré
7:38:13 Récupérer l'utilisateur dans les routes protégées
7:42:44 Fonctionnalités avancées de Postman
7:50:33 Notions de base sur les relations SQL
7:54:59 Clés étrangères Postgres
8:07:20 Clés étrangères SQLAlchemy
8:13:40 Mettre à jour le schéma pour inclure l'utilisateur
8:17:59 Attribution de l'ID du propriétaire lors de la création d'un nouvel enregistrement
8:21:01 Supprimer et mettre à jour uniquement le vôtre
8:27:48 Récupérer uniquement l'utilisateur connecté
8:33:37 Relations Sqlalchemy
8:38:32 Paramètres de requête
8:50:46 Nettoyer notre fichier main.py
8:53:53 Variables d'environnement
9:21:20 Théorie du vote/like
9:26:36 Table des votes
9:31:33 Votes Sqlalchemy
9:34:11 Route des votes
9:52:31 Jointures SQL
10:15:26 Jointures dans SqlAlchemy
10:28:21 Récupérer un avec des jointures
10:30:18 Qu'est-ce qu'un outil de migration de base de données
10:33:45 Configuration d'Alembic
11:13:50 Désactiver la création de moteur SqlAlchemy
11:14:28 Qu'est-ce que CORS ?
11:23:38 Prérequis Git
11:27:40 Installation de Git
11:29:23 Github
11:34:39 Introduction à Heroku
11:35:40 Créer une application Heroku
11:40:21 Procfile Heroku
11:44:59 Ajout d'une base de données Postgres
11:48:42 Variables d'environnement dans Heroku
11:58:59 Migrations Alembic sur l'instance Postgres Heroku
12:02:52 Pousser les changements en production
12:05:04 Créer une VM Ubuntu
12:08:04 Mettre à jour les packages
12:10:47 Installer Python
12:12:21 Installer Postgres et configurer le mot de passe
12:17:28 Configuration de Postgres
12:24:50 Créer un nouvel utilisateur et configurer l'environnement Python
12:34:06 Variables d'environnement
12:42:24 Migrations Alembic sur la base de données de production
12:45:57 Gunicorn
12:54:12 Création d'un service Systemd
13:04:45 NGINX
13:10:45 Configuration du nom de domaine
13:15:19 SSL/HTTPS
13:19:31 Activer NGINX
13:20:06 Pare-feu
13:23:47 Pousser les changements de code en production
13:26:09 Dockerfile
13:38:39 Docker Compose
13:48:34 Conteneur Postgres
13:56:22 Montages de liaison
14:03:39 Dockerhub
14:08:08 Production vs Développement
14:14:51 Introduction aux tests
14:17:19 Écrire votre premier test
14:30:22 Les drapeaux -s & -v
14:31:44 Tester plus de fonctions
14:35:29 Paramétrer
14:40:21 Tester des classes
14:48:37 Fixtures
14:55:40 Combiner Fixtures + Paramétrer
14:59:13 Tester des exceptions
15:06:07 FastAPI TestClient
15:14:26 Drapeaux Pytest
15:17:31 Tester la création d'utilisateur
15:25:23 Configurer la base de données de test
15:36:47 Créer et détruire la base de données après chaque test
15:44:18 Plus de fixtures pour gérer l'interaction avec la base de données
15:50:35 Barres obliques finales dans le chemin
15:53:12 Portée de la fixture
16:07:50 Tester la fixture utilisateur
16:14:40 Tester/valider le jeton
16:18:59 Conftest.py
16:22:09 Tests
17:34:15 Introduction au CI/CD
17:43:29 Actions Github
17:49:32 Création de jobs
17:57:38 configuration python/dépendances/pytest
18:06:14 Variables d'environnement
18:11:19 Secrets Github
18:18:14 Base de données de test
18:23:42 Création d'images Docker
18:34:33 Déployer sur Heroku
18:49:10 Tests échoués dans le pipeline
18:52:18 Déployer sur Ubuntu