Aller au contenu

Parcours · Python pour le Web

Python pour le Web

Flask, Django, Streamlit et Gradio : quatre manières de transformer du code Python en application accessible. 39 leçons pour comprendre chaque outil et, surtout, savoir lequel choisir.

leçons
39
modules
7
frameworks
4

Avant de commencer

Quel framework choisir ?

Commencer par l'orientation

Le bon outil dépend de votre besoin, pas de la mode. Quatre repères avant de plonger.

  1. 01

    Flask

    Micro-framework : un fichier, quelques routes.

    Idéal : API légère, prototype, contrôle total

  2. 02

    Django

    Tout inclus : ORM, admin, auth, sécurité.

    Idéal : application complète, équipe, production

  3. 03

    Streamlit

    Une app data en pur script Python.

    Idéal : dashboard, exploration, démo interne

  4. 04

    Gradio

    Une interface autour d'un modèle en quelques lignes.

    Idéal : démo de modèle ML, partage rapide

Choisir son framework

Avant d'écrire une ligne de code : comprendre les deux familles d'outils Python pour le Web, où tourne le code, ce que contient vraiment un échange HTTP, et lequel de Flask, FastAPI, Django, Streamlit ou Gradio répond à votre besoin.

5 leçons

Flask : le micro-framework

Du « Hello World » en cinq lignes à une application structurée, testée et prête pour la production : routage, templates Jinja2, base de données avec SQLAlchemy, API JSON, sessions et mots de passe, tests pytest, blueprints et gunicorn.

8 leçons

06Débutant

Premier serveur Flask

L'application Flask minimale : créer l'objet Flask, déclarer des routes, lancer le serveur de développement avec flask run et comprendre ce qu'il fait.

Ouvrir la leçon
07Débutant

Routes, paramètres et méthodes HTTP

Variables dans l'URL et convertisseurs de type, paramètres de requête, méthodes GET et POST sur une même route, raccourcis @app.get et @app.post.

Ouvrir la leçon
08Intermédiaire

Templates Jinja2

Séparer la logique Python du HTML avec render_template : variables, boucles, conditions, héritage de templates avec extends et block, liens avec url_for.

Ouvrir la leçon
09Intermédiaire

Base de données avec Flask-SQLAlchemy

Brancher une vraie base sur Flask : modèle déclaratif SQLAlchemy 2.x avec Mapped et mapped_column, session, select paramétré, get_or_404 et migrations.

Ouvrir la leçon
10Intermédiaire

Construire une API REST JSON

Renvoyer du JSON avec jsonify, choisir les bons codes HTTP (200, 201, 204, 400, 404), valider le corps reçu et structurer des routes REST complètes.

Ouvrir la leçon
11Avancé

Sessions, connexion et mots de passe

Connecter un utilisateur avec Flask : session signée, mots de passe hachés avec Werkzeug, décorateur login_required, déconnexion et cookies sécurisés.

Ouvrir la leçon
12Intermédiaire

Tester une app Flask avec pytest

Écrire des tests automatisés pour une API Flask : fixture pytest, application de test créée par une factory, client de test, assertions sur le statut et le JSON.

Ouvrir la leçon
13Avancé

Structurer et déployer

Organiser un projet Flask avec des blueprints et une application factory, lire la configuration dans l'environnement, puis servir l'application en production avec gunicorn.

Ouvrir la leçon

FastAPI : API modernes et typées

FastAPI est devenu la référence Python pour les API JSON : vous déclarez des types, il en tire la validation, la conversion, les erreurs 422 et une documentation interactive. Construisez une API de réservation pas à pas, de la première route aux tests automatisés et au lancement en production.

4 leçons

Django : le framework complet

Le framework « batteries incluses » de Python : ORM et relations, migrations, back-office généré, formulaires validés, authentification et permissions, API REST avec DRF, tests et mise en production. Un seul fil rouge, la boutique, du premier modèle au service durci.

8 leçons

18Débutant

Philosophie MVT et structure du projet

« Batteries incluses », l'architecture Modèle-Vue-Template, et la différence cruciale entre un projet et une application.

Ouvrir la leçon
19Intermédiaire

Modèles et ORM

Décrire ses tables en classes Python, générer les migrations, et interroger la base sans écrire de SQL grâce à l'ORM.

Ouvrir la leçon
20Intermédiaire

Relations entre modèles et requêtes efficaces

ForeignKey, on_delete, related_name et ManyToManyField ; traverser les relations dans l'ORM, repérer le problème N+1 et le corriger avec select_related, prefetch_related et annotate.

Ouvrir la leçon
21Débutant

L'interface d'administration générée

Le superpouvoir de Django : un back-office complet (CRUD, recherche, filtres, objets liés) généré automatiquement à partir de vos modèles.

Ouvrir la leçon
22Intermédiaire

Vues, URLs et templates

Le trajet d'une requête : du fichier urls.py vers une vue qui interroge l'ORM, puis vers un template rendu en HTML. Page de liste, page de détail et erreur 404 propre.

Ouvrir la leçon
23Intermédiaire

Formulaires, validation et tests

Saisir et valider des données en sécurité : forms.Form, ModelForm, validation personnalisée, protection CSRF, puis vérifier le tout avec le client de test de Django.

Ouvrir la leçon
24Avancé

Authentification, sessions et permissions

Le système d'utilisateurs intégré : connexion et déconnexion, sessions, @login_required, LoginRequiredMixin, permissions et groupes, mots de passe hachés et modèle utilisateur personnalisé.

Ouvrir la leçon
25Avancé

API avec DRF, tests et mise en production

Exposer ses données en API REST avec Django REST Framework, sans l'ouvrir en écriture à tous : permissions, pagination, test avec APIClient, puis settings durcis, check --deploy et gunicorn.

Ouvrir la leçon

Streamlit : applications de données

Transformez un script Python en application web interactive sans écrire de HTML : widgets et formulaires, tableaux et graphiques Pandas, état de session, cache, interface de chat pour un LLM, navigation multipage, secrets et déploiement. Le chemin le plus court entre une analyse et un outil partagé avec son équipe.

6 leçons

26Débutant

Première app Streamlit

Du script Python à l'application web : les fonctions st.* qui dessinent la page, la commande streamlit run et le modèle d'exécution top-down qui explique tout le reste du module.

Ouvrir la leçon
27Débutant

Widgets, formulaires et callbacks

Rendre l'app interactive : lire la valeur d'un widget, le relier à st.session_state avec key=, réagir avec on_change / on_click et regrouper plusieurs saisies dans un st.form validé en une seule fois.

Ouvrir la leçon
28Intermédiaire

Données, tableaux et graphiques

Afficher un DataFrame Pandas avec st.dataframe, mettre en avant un indicateur avec st.metric et tracer une tendance avec st.line_chart, sans tomber dans le piège des mois triés par ordre alphabétique.

Ouvrir la leçon
29Intermédiaire

État de session, cache et fragments

Conserver des valeurs entre les réexécutions avec st.session_state, éviter de recalculer le coûteux avec @st.cache_data (et ttl=), partager une connexion avec @st.cache_resource et ne réexécuter qu'une partie de la page avec @st.fragment.

Ouvrir la leçon
30Avancé

Interface de chat pour un LLM

Construire l'interface de chat d'un assistant : historique dans st.session_state, bulles st.chat_message, saisie st.chat_input, réponse affichée en flux avec st.write_stream et clé d'API rangée dans st.secrets.

Ouvrir la leçon
31Avancé

Mise en page, multipage et déploiement

Structurer l'app avec une barre latérale et des colonnes, la découper en pages avec st.Page et st.navigation, ranger les secrets dans st.secrets, puis la mettre en ligne sur Streamlit Community Cloud.

Ouvrir la leçon

Gradio : démos de modèles et chatbots

Transformez une fonction Python, un modèle de machine learning ou un assistant conversationnel en démo web partageable, sans écrire de HTML. De gr.Interface à gr.ChatInterface en streaming, jusqu'au déploiement sur Hugging Face Spaces.

6 leçons

Mettre en production : sécurité et conteneurs

Le module qui relie tous les frameworks : repérer et corriger les failles web les plus courantes (injection, XSS, CSRF, contrôle d'accès, secrets), puis livrer n'importe quelle app Python dans un conteneur Docker propre, configuré par l'environnement et servi derrière un proxy HTTPS.

2 leçons