Quelqu'un m'a posé la question la semaine dernière, à la fin d'un atelier : « J'ai fini un cours Python, je sais faire des boucles et des fonctions. Et maintenant, comment je fais un site web ? » Il avait l'air un peu perdu. Normal. Parce que la réponse honnête, c'est que les bases de Python ne servent presque à rien pour le web tant qu'on n'a pas compris une chose : le web, c'est du texte qui circule entre un navigateur et un serveur, et Python n'est que la partie serveur de cette histoire.
La plupart des pages qui expliquent comment débuter en programmation Python pour le web sautent cette étape. Elles vous font écrire print("bonjour") pendant trois semaines, puis vous lâchent devant Flask sans transition. Ça ne marche pas. Je l'ai vu assez de fois pour savoir où ça bloque.
Points clés à retenir
- Python pour le web, ce n'est pas « apprendre Python » : c'est apprendre à faire parler Python avec HTTP, HTML et une base de données.
- Un framework comme Flask s'apprend en un week-end une fois les bases posées — mais les bases web (requêtes, routage, formulaires) sont le vrai goulot d'étranglement.
- Django et FastAPI ne sont pas de « meilleurs » choix : ils répondent à d'autres besoins. Pour un débutant, Flask reste le chemin le plus court.
- Le premier objectif concret n'est pas « maîtriser un framework » mais « mettre une petite application en ligne, accessible depuis un autre ordinateur ».
- Compter deux à trois mois à raison de quelques heures par semaine pour arriver à ce premier déploiement, pas deux semaines.
Python et le web : pourquoi les bases du langage ne suffisent pas
Voilà le malentendu de départ. Un cours de Python classique vous apprend à manipuler des variables, des listes, des dictionnaires, des fichiers. C'est de l'informatique locale. Le web, lui, c'est de l'informatique distribuée : votre code tourne sur une machine quelque part, et il répond à des demandes qui arrivent par le réseau. Deux mondes différents.
Ce que fait vraiment un site web, en une phrase
Quand vous tapez une adresse, votre navigateur envoie une requête HTTP à un serveur, qui renvoie du texte — le plus souvent du HTML. Tout le reste (Python, bases de données, frameworks) n'est qu'une machinerie pour fabriquer ce HTML à la volée, différemment selon la demande.
Un site statique, ce sont des fichiers HTML posés sur un serveur, toujours identiques. Un site « avec Python », c'est un programme qui génère le HTML au moment où la requête arrive. C'est toute la différence, et c'est ce qui explique pourquoi Python est utile : il peut lire une base de données, faire un calcul, vérifier si vous êtes connecté, puis produire la page qui correspond.
Combien de Python faut-il maîtriser avant de toucher au web ?
Moins que ce que vous croyez. Concrètement, il vous faut :
- Les types de base et les structures (listes, dictionnaires) — non négociable
- Les fonctions, les arguments, les valeurs de retour
- Les boucles et les conditions, évidemment
- Les modules et les imports, pour comprendre comment on organise un projet
- Une vague idée des classes — pas besoin de maîtriser l'héritage multiple, mais lire une classe sans paniquer, oui
L'orienté objet au sens académique (les designs patterns, l'héritage à trois niveaux) ne sert à rien au démarrage sur le web. J'ai perdu des semaines là-dessus, à vouloir faire du « vrai » POO avant de toucher un framework. Erreur. J'aurais dû écrire une route Flask bancale dès la deuxième semaine.
Si vous savez écrire une fonction qui prend un dictionnaire et renvoie une chaîne, vous avez le niveau technique pour attaquer Flask. Le reste viendra en route.
Les prérequis web qu'on oublie systématiquement
Ici, on touche au vrai manque des parcours débutants. Presque tous les cours « Python pour le web » passent directement du langage au framework sans expliquer trois choses qui vont vous bloquer dès la première semaine.
HTML et HTTP : les deux langues que votre serveur doit parler
Vous n'avez pas besoin de devenir expert en CSS, ni même de savoir faire une mise en page correcte. En revanche, il faut comprendre qu'une page HTML est un arbre de balises, et savoir écrire un formulaire simple. Une heure ou deux suffisent, pas un mois.
HTTP, c'est le vocabulaire des échanges : méthode GET pour récupérer, POST pour envoyer, les codes de statut (200 pour OK, 404 pour introuvable, 500 pour erreur serveur). Un débutant qui ne connaît pas ces codes passe une soirée entière à chercher pourquoi sa page ne s'affiche pas, alors que la réponse était « 404, ton URL ne correspond à aucune route ».
Git et la ligne de commande : pas une option
Je vais être direct : si vous ne savez pas utiliser un terminal (naviguer entre les dossiers, lancer une commande, lancer un script Python avec python mon_fichier.py), vous allez souffrir. Pas parce que c'est difficile — ça s'apprend en deux heures — mais parce que tous les tutoriels supposent que vous savez déjà le faire.
Git, c'est autre chose. On peut développer un petit projet web sans Git pendant un mois ou deux. Mais dès que vous cassez quelque chose et que vous voulez revenir en arrière, vous le regretterez. Je recommande fortement d'apprendre les quatre commandes de base (init, add, commit, push) dès le premier projet, même petit.
Quel framework choisir quand on débute en Python web
La question revient sans arrêt, et les réponses qu'on trouve en ligne sont souvent militantes. Voici une comparaison posée, tirée de ce que j'ai vu fonctionner chez des débutants autour de moi.
| Framework | Courbe d'apprentissage | Pour quel besoin | Mon avis pour un débutant |
|---|---|---|---|
| Flask | Douce — une route en 5 lignes | Petits sites, API simples, apprendre les concepts | Le meilleur point de départ, sans hésiter |
| Django | Raide — beaucoup de conventions imposées | Sites complets avec admin, utilisateurs, base de données | Excellent, mais après avoir compris Flask |
| FastAPI | Moyenne — moderne, typée, orientée API | API de données, applications qui servent du JSON | Bien si votre objectif est de faire du back-end d'API |
Mon opinion, et je l'assume : commencez par Flask. Pas parce que c'est le plus puissant, mais parce qu'il ne cache presque rien. Vous voyez le code qui reçoit la requête, le code qui renvoie la réponse. Django vous impose une structure avant que vous ne compreniez pourquoi. FastAPI est très bien conçu, mais il suppose une familiarité avec les concepts d'API qui vient plus tard.
Réservez Django pour votre deuxième projet, quand vous aurez déjà compris ce qu'est une route et un template. C'est exactement ce que j'ai fait après avoir galéré trois semaines sur une config Django en aveugle.
Le parcours pas-à-pas pour débuter concrètement
Voici l'ordre que je conseille, avec des durées réalistes pour quelqu'un qui travaille à côté. Pas de « en une semaine vous serez développeur ».
Étape 1 — consolider les bases Python (2 à 3 semaines)
Pas besoin de tout savoir. Objectif : écrire un script de trente lignes qui lit un fichier, transforme les données, et affiche un résultat. Si vous y arrivez sans copier-coller de Stack Overflow, vous êtes prêt.
Étape 2 — HTML et HTTP en survol (1 semaine)
Écrire une page HTML avec un formulaire, comprendre ce qu'est un en-tête de requête, savoir lire la console réseau d'un navigateur. Rien de plus.
Étape 3 — premier Flask, premier vrai projet (2 à 3 semaines)
L'objectif n'est pas d'apprendre Flask en entier. C'est de faire une seule chose fonctionner en local : une page d'accueil, un formulaire qui renvoie une réponse personnalisée, une page d'erreur propre. À la fin de cette étape, vous devez avoir une petite appli qui tourne sur localhost:5000 et dans laquelle vous pouvez cliquer.
Étape 4 — une base de données simple (2 semaines)
Je conseille SQLite pour commencer, puis un ORM (l'outil qui traduit Python en SQL). L'objectif est de stocker quelque chose que vous saisissez dans un formulaire et de le réafficher. C'est là qu'on comprend vraiment pourquoi le web et Python se marient bien.
Étape 5 — déployer, pour de vrai (quelques jours)
Héberger votre application sur une plateforme accessible publiquement. C'est l'étape qui fait peur, et celle que 80 % des débutants sautent. Or c'est celle qui transforme un exercice en projet. Un lien que vous pouvez envoyer à un ami, même bancal, vaut mieux que dix tutoriels terminés.
Les erreurs que je vois le plus souvent (et que j'ai commises)
Franchement, la première fois, j'ai cru que Flask était cassé. En réalité, mon application tournait sur une adresse que j'avais mal recopiée. Trois heures perdues sur un caractère.
- Confondre « apprendre Python » et « apprendre le web avec Python » — deux projets séparés, à mener l'un après l'autre
- Vouloir tout savoir du langage avant de coder, ce qui repousse indéfiniment le premier projet (moi, premier)
- Ne jamais déployer, donc ne jamais se confronter aux vraies erreurs de production
- Suivre trois tutoriels en parallèle, avec trois structures de projet différentes
- Ignorer les messages d'erreur au lieu de les lire vraiment — c'est pourtant le meilleur prof, et gratuit
Le point commun de toutes ces erreurs ? Chercher à être prêt avant de commencer. On n'est jamais prêt. On commence, on casse, on comprend.
Quel premier objectif concret viser ?
Une idée reçue à jeter : le premier projet doit être utile ou original. Non. Il doit surtout être petit, finissable, et déployé. Une page qui affiche une citation aléatoire stockée dans une base de données, c'est un excellent premier projet. Un formulaire de contact qui enregistre les messages et les affiche, aussi.
Ce que ça vous force à faire : écrire une route, lire une entrée utilisateur, écrire et lire en base, rendre un template, gérer une erreur. C'est l'essentiel du web. Le reste, ce sont des détails de plus en plus fins.
Et si vous êtes tenté de vous lancer sur une « vraie » appli ambitieuse dès le premier mois — un réseau social, un outil de gestion, je ne sais quoi — résistez. Vous abandonnerez à mi-chemin, comme la plupart. J'ai un dossier « projets abandonnés » sur mon disque. Il contient six entrées. Le plus vieux a huit ans.
Le chemin le plus court pour débuter en Python web n'est pas de lire plus, ni de regarder une énième vidéo. C'est d'écrire une route qui renvoie autre chose qu'une page blanche, puis de la mettre en ligne. Et quand quelqu'un cliquera dessus depuis son téléphone, vous aurez franchi un cap que cent tutoriels ne vous auront pas donné.
À vous de voir ce que vous ferez de cette première page bancale. Personnellement, je l'ai gardée. Elle ne fait rien d'utile. Mais elle existe, elle a une URL, et c'est ce qui a compté.