Mettre son site Flask en ligne
Pour mettre notre site programmé en Flask, en ligne sur le web, gratuitement, nous allons utiliser render.
Sur cette page tu trouveras :
Préparer son projet au déploiement
Pour que ton projet Python (comme une app Flask) soit compris, installé et lancé correctement sur un serveur ou une plateforme comme Render, nous allons avoir besoin de fichiers de configuration, à la racine de notre projet.
Création d’un fichier requirements.txt
- Créer à la racine de ton projet, un fichier requirements.txt
- Ce fichier dit à l’hébergeur : « Voici tout ce dont mon projet a besoin pour fonctionner. »
- Il doit contenir toutes les bibliothèques que tu as installé via la commande « pip install » et les librairies que tu utilises comme requests, jinja2, etc..
- Tu dois ajouter gunicorn qui va nous aider à l’exécution à distance
- Voici à droite un exemple d’écriture pour configurer ce fichier avec le nécessaire

Création d’un fichier Procfile (sans extension)
- Créer à la racine de ton projet, un fichier Procfile (avec un P majuscule, et pas d’extension de fichier à la fin.
- Ce fichier dit à Render comment lancer ton appli
- Une seule ligne de code à inclure dedans :
- web: gunicorn main:app
Ce code veut dire : “démarre un serveur web avec gunicorn, et lance l’objet app qui est dans le fichier main.py.”

Pour bien écrire ton code, tu dois comprendre ce que représente « main » et « app ».
- Mon fichier s’appelle main.py, c’est mon fichier permettant d’exécuter mon appli web.
- app est le nom de mon appli web.
Si ton fichier, ou le nom de ton appli est différent, tu dois le modifier par rapport à ce code exemple.
Attention : Fichier sensible !
Dernier point : ce fichier doit être scrupuleusement bien écrit. Il ne dois pas y avoir d’espace derrière ton code, ou de saut de ligne. Fais bien attention à cela, sinon render te mettra un échec a l’exécution.
Mettre son projet sur github
La manière la plus simple de déployer ton site, va être de l’héberger sur ton github. Si tu as déjà ton projet sur github, tu peux passer à l’étape suivante !
Si tu ne l’as pas encore fait, et ne l’utilises pas pendant tes ateliers, tu n’es pas obligé de maitriser « tout github via vscode ». Tu peux très bien créer ton repo dans github manuellement, en créant le projet sur github, et en uplodant tes fichiers depuis ton ordinateur.
Voici une méthode rapide :
Crée ton compte sur github.com
Puis clique sur le bouton vert « new » pour créer un nouveau repo (repo = projet)

Donne un nom à ton repo (ca servira d’url)
Mets le en public (pour que render ait accès)
Et ajoute un Readme (même si tu ne t’en sers pas, ca permet une bonne ossature et évite souvent des problèmes ultérieurs)
Puis clique en bas sur « create repository »

Cela t’ouvre la page de ton projet. Tu vois que tu es sur la branche main, et tu peux cliquer sur Add file et choisir Upload files.
Il te suffit maintenant d’uploader tes fichiers à la racine !
Important : n’uploade pas un dossier entier contenant ton projet. Tu dois ouvrir ton dossier de projet sur ton ordi et sélectionner uniquement son contenu : main.py, templates/, static/, requirements.txt, Procfile, etc.

Une fois tous tes fichiers et dossiers bien téléchargés sur github, n’oublie pas d’aller en bas de cette page et de cliquer sur « Commit changes » pour sauvegarder ton upload !
Tout est prêt pour mettre ton site en ligne !

Déployer un site en ligne
Créer un compte sur render (lié à ton github)
Tout d’abord rendez-vous sur render.com et directement la touche « Sign In » !

Tout d’abord rendez-vous sur render.com et directement la touche « Sign In » !

Configurer sa mise en ligne
Sur votre tableau de bord, choisissez le bouton « New » et « Web service »

Ca te demande de donner le lien de votre repo github.
Clique sur « Public Git Repository » et donne l’url de ton repo

- Name : Donne un nom à ton projet

- Langage : Python 3
- Branch : main

- Build Command :
- pip install -r requirements.txt
- Start Command :
- gunicorn main:app

- Et sélectionner FREE
- Bien sûr cela donne des restrictions, mais c’est suffisant pour héberger en ligne)

Debug et restrictions
Debug possible :
Si lors de la configuration render pour déployer ton site, tu vois une erreur en console. (par exemple, tu as fait une coquille dans une commande sur Procfile, ou oublié une bibliothèque à déclarer dans ton fichier requirements.txt) :
Tu peux éditer ton fichier et le modifier (directement via github si tu le souhaites, et pense à commit pour sauvegarder le changement).
Puis relance render en cliquant sur « Manual Deploy« , puis « Deploy latest commit«

Restrictions de la version gratuite
Sur le plan gratuit de Render, tu peux effectuer des déploiements illimités, mais tu es soumis à certaines limites mensuelles :
Déploiements :
- Aucun nombre maximal de déploiements.
- Tu peux déployer autant de fois que tu le souhaites, manuellement ou via GitHub.
Heures d’instance gratuites :
- Tu disposes de 750 heures d’instance gratuites par mois
- Chaque service web actif (donc projet en ligne) consomme ces heures
- Par exemple, si tu as deux services actifs en permanence, tu atteindras la limite en environ 15 jours
- Si tu dépasses cette limite, tous tes services gratuits sont suspendus jusqu’au début du mois
- Les services gratuits sont mis en veille après 15 minutes d’inactivité.
- Lorsqu’un service est mis en veille, il ne consomme pas d’heures d’instance.
- Lorsqu’il est réveillé par une nouvelle requête, il peut y avoir un délai de démarrage pouvant aller jusqu’à une minute
- En gros, quand on clique sur le site, on voit un démarrage render, et la page se met en route