Comment héberger gratuitement votre site Web Python sur Heroku

Vous venez de terminer un simple site Web de portefeuille avec Python et vous souhaitez le mettre en place en utilisant un hébergement gratuit. Vous avez entendu parler de l'hébergement gratuit d'Heroku, mais vous ne comprenez pas très bien les aspects techniques impliqués.
Ce guide vous aidera à travailler tout au long du processus d'hébergement de votre site Web Python gratuitement sur Heroku, d'une manière beaucoup plus simple. Nous supposons que vous avez une connaissance de base de Python et d'au moins un de ses frameworks — de préférence Django.
Heroku est un fournisseur d'hébergement Web de plate-forme en tant que service (PaaS) qui gère son infrastructure sur quelque chose qu'il appelle Dynos. Il vous permet de rester concentré sur le déploiement, tout en prenant en charge la difficulté de maintenir et de créer votre infrastructure Web.
Si vous ne pouvez pas vous permettre un hébergement payant mais que vous souhaitez créer rapidement un portefeuille en ligne, vous pouvez envisager de l'héberger sur Heroku. En plus d'être gratuit, il est assez rapide de mettre en place votre site Web sur Heroku.
Bien sûr, il existe d'autres plates-formes sur lesquelles vous pouvez héberger gratuitement votre site Web Python, telles que Amazon Web Services et PythonAnywhere. Mais le processus d'hébergement sur Heroku est facile – surtout pour les personnes sans connaissance préalable du déploiement.
Lorsque vous hébergez un site Web gratuitement sur Heroku, vous n'avez pas nécessairement besoin d'un nom de domaine. Tout ce dont vous avez besoin est de spécifier le nom de votre application sur la plateforme d'hébergement. Heroku crée ensuite un localisateur app.herokuapp.com pour vous. Lorsque vous utilisez ce service gratuit, votre site fonctionne sur Heroku Dynos.
Si vous décidez plus tard de passer à l'échelle et d'obtenir un nom de domaine, c'est tout aussi simple et rapide, mais vous devez payer pour cela. Le coût écrasant de la maintenance de la mise à niveau pourrait vous amener à la repenser, mais cela en vaut la peine si vous êtes déterminé à investir davantage dans le projet.
Voyons maintenant comment héberger gratuitement votre site Web Python sur Heroku. Notez que ceci est basé sur Python version 3.7 et Django version 2.1.7.
Pour commencer, téléchargez Git depuis le site Web git-scm . Les différentes commandes et astuces permettant d'installer Git sur tous les OS sont expliquées ici.
Après avoir installé Git, vous devez également créer un compte avec Heroku sur la page d'inscription Heroku si vous n'en avez pas déjà un.
Ensuite, téléchargez et installez la CLI Heroku à partir du site Web Heroku. La CLI Heroku vous permet de communiquer avec votre référentiel chaque fois que vous devez valider des modifications dans votre application.
Si vous n'êtes pas déjà familiarisé avec les commandes Git, vous devriez jeter un œil à notre introduction au contrôle de version avec Git .
Si vous n'avez pas de projet Django configuré et que vous souhaitez l'essayer avec ce tutoriel, ouvrez la ligne de commande et créez un environnement virtuel si vous n'en avez pas encore. Une fois l'environnement virtuel prêt, utilisez cette commande pour installer le framework Django:
Une fois Django installé dans l'environnement virtuel, exécutez la commande suivante pour démarrer un nouveau projet Django:
Ensuite, créez une nouvelle application Python. Pour ce faire, migrez vers le dossier racine de votre projet sur le CMD et exécutez:
Rappelez – vous de remplacer project_name et app_name avec vos noms préférés.
Vous avez besoin du module gunicorn pour cela, vous devez donc également exécuter pip install gunicorn . Ajoutez ensuite gunicorn à la liste des applications installées dans settings.py , comme indiqué ci-dessous:

Ceci est juste une introduction en surface à la création d'une application Django. Cependant, que votre application soit prête ou que vous en construisiez une, assurez-vous que votre exécution python manage.py migre pour créer votre base de données.
Vous devriez maintenant avoir une application Python exécutée dans votre framework Django. Nous allons maintenant plonger dans notre objectif principal.
Pour réussir le déploiement de votre application sur Heroku, vous devez configurer un fichier requirements.txt . Pour le configurer, exécutez ce qui suit sur votre CMD:
Cette ligne crée un fichier .txt contenant tous les packages utilisés pour servir votre projet. Heroku examine ce fichier pendant le déploiement et installe ces packages automatiquement.
Un autre fichier important que vous devez spécifier est le fichier Procfile . Cela indique à Heroku les commandes à exécuter lors de l'initialisation de l'application. Cependant, vous devez créer ce fichier en créant explicitement un nouveau fichier texte nommé Procfile à la racine de votre projet. Assurez-vous que ce fichier n'a pas d'extension de fichier; sinon, cela ne fonctionnera pas.
Pour supprimer l'extension de fichier du fichier Procfile sous Windows, ouvrez le dossier dans l'Explorateur de fichiers, cliquez sur Afficher dans la barre d'outils supérieure et cochez la case Extensions de nom de fichier. Vous verrez alors les extensions pour tous les fichiers, y compris l'extension .txt pour Procfile . Cliquez avec le bouton droit sur Procfile et choisissez Renommer , puis supprimez simplement l'extension .txt et appuyez sur Entrée .

Ensuite, ouvrez le fichier Procfile et ajoutez la ligne suivante, en remplaçant project_name par le nom qui s'applique à votre projet:
En option, vous pouvez également créer un fichier runtime.txt . Ouvrez le fichier et spécifiez la version Python comme suit:
C'est ainsi que vous indiquez à Heroku la version Python sur laquelle votre application s'exécute. Si vous ne spécifiez pas ce fichier, Heroku utilise simplement la dernière version de Python par défaut.
Ensuite, dans l'invite de commande, connectez-vous à votre compte Heroku en exécutant cette commande:
Cette commande ouvre votre navigateur par défaut à la page de connexion Heroku, où vous pouvez fournir vos informations de connexion.
Pour créer une application sur Heroku, tapez la ligne suivante:
Remplacez ademosapp2 par le nom de votre application préférée. Si le nom de votre application sélectionnée est en cours d'utilisation, vous verrez un message vous invitant à choisir un nouveau nom.
Sur la page de connexion, cliquez sur le logo Heroku pour vous connecter à votre tableau de bord Heroku. Vous devriez maintenant voir l'application que vous venez de créer.

Ensuite, ouvrez votre éditeur de texte préféré à l'emplacement de votre projet et accédez à settings.py de votre projet. Dans le fichier settings.py , définissez l' hôte autorisé sur [*] — cela rend votre application accessible à n'importe quel hôte global.
Accédez maintenant à votre tableau de bord Heroku et cliquez sur l'application nouvellement créée, puis sur les paramètres . Dans les paramètres, faites défiler vers le bas et cliquez sur Ajouter un pack de construction . Sélectionnez ensuite Python comme buildpack et cliquez sur Enregistrer les modifications .

Ensuite, revenez à votre CMD et exécutez le code suivant pour installer Heroku dans votre projet:
Maintenant, ajoutez le package nouvellement installé au fichier requirements.txt en exécutant:
Ensuite, ouvrez le fichier settings.py de votre projet et tapez:
Aussi, sur la dernière ligne de settings.py , activez django-heroku en ajoutant:
Une fois cela fait, lancez un référentiel distant en tapant ce qui suit dans votre ligne de commande:
Ensuite, créez un référentiel d'applications Heroku en exécutant:
Pour vérifier les fichiers qui doivent être validés, exécutez:
Ensuite, tapez la commande suivante pour ajouter toutes les modifications à votre référentiel:
Une fois les modifications ajoutées, validez vos modifications dans Heroku en exécutant la commande:
Notez que "initial-commit" peut utiliser n'importe quel nom.
Ensuite, vous devez désactiver collectstatic en utilisant ce qui suit:
Sinon, vous risquez de rencontrer des problèmes pendant le processus de déploiement.
Pour enfin pousser vos fichiers vers votre référentiel Heroku, utilisez la commande:
Cela pousse tous vos fichiers vers Heroku et rend l'application accessible de n'importe où. Pour voir votre application nouvellement déployée, accédez à https://app_name.herokuapp.com dans votre navigateur, en remplaçant app_name par le nom de votre application.

Vous pouvez héberger une variété de versions d'applications sur Heroku; les mêmes processus Git que nous avons abordés ici fonctionnent pour d'autres langages que Python. Il vous suffit d'apporter de petites modifications, telles que la réinitialisation de votre pack de construction.
Bien que Heroku vous propose un hébergement gratuit, nous savons tous que le contenu gratuit comporte certaines limitations. Cependant, si vous ne vous attendez pas à ce que votre site Web reçoive beaucoup de trafic, l'hébergement Heroku gratuit pourrait être une bonne option.