Vous venez donc de terminer un site Web de portefeuille simple avec Python et vous souhaitez le mettre en place en utilisant un hébergement gratuit. Vous avez entendu parler de l'hébergement gratuit de Heroku, mais vous ne comprenez pas tout à fait les détails techniques impliqués.
Ce guide vous aidera à parcourir l'ensemble du processus d'hébergement gratuit de votre site Web Python 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.
Pourquoi choisir Heroku ?
Heroku est un fournisseur d'hébergement Web de plate-forme en tant que service (PaaS) qui exécute 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 construire votre infrastructure Web.
Si vous ne pouvez pas vous permettre un hébergement payant mais que vous souhaitez mettre en place un portefeuille en ligne rapidement, 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 simple --- en particulier pour les personnes sans connaissance préalable du déploiement.
Lorsque vous hébergez un site web gratuitement sur Heroku, vous n'avez pas forcément besoin d'avoir un nom de domaine. Tout ce dont vous avez besoin est de spécifier le nom de votre application sur la plate-forme 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 peut vous amener à y repenser, mais cela en vaut la peine si vous êtes déterminé à investir davantage dans le projet.
Examinons maintenant comment héberger votre site Web Python gratuitement sur Heroku. Notez que ceci est basé sur Python version 3.7 et Django version 2.1.7.
Configurer Git et Heroku
Pour commencer, téléchargez Git depuis le site Web git-scm . Les différentes commandes et astuces pour installer Git sur tous les systèmes d'exploitation y sont expliquées.
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 Heroku CLI à 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 .
Configurer un projet Django
Si vous n'avez pas configuré de projet Django 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 :
pip install django==2.1.7
Une fois Django installé dans l'environnement virtuel, exécutez la commande suivante pour démarrer un nouveau projet Django :
django-admin.py startproject project_name
Ensuite, créez une nouvelle application Python. Pour ce faire, migrez dans le dossier racine de votre projet sur le CMD et exécutez :
python manage.py startapp app_name
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 n'est qu'une introduction superficielle à 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 en cours d'exécution dans votre framework Django. Nous allons maintenant plonger dans notre objectif principal.
Déploiement de votre application sur Heroku
Pour réussir le déploiement de votre application sur Heroku, vous devez configurer un fichier requirements.txt . Pour le configurer, exécutez la commande suivante sur votre CMD :
pip freeze > requirements.txt
Cette ligne crée un fichier .txt qui contient tous les packages utilisés pour servir votre projet. Heroku examine ce fichier lors du 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 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 de 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 Procfile et ajoutez la ligne suivante, en remplaçant project_name par le nom qui s'applique à votre projet :
web: gunicorn project_name.wsgi
En option, vous pouvez également créer un fichier runtime.txt . Ouvrez le fichier et spécifiez la version Python comme suit :
python-3.7.6
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 :
heroku login
Cette commande ouvre votre navigateur par défaut sur la page de connexion Heroku, où vous devez fournir vos informations de connexion.
Pour créer une application sur Heroku, tapez la ligne suivante :
heroku create ademosapp2
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 au fichier settings.py de votre projet . Dans le fichier settings.py , remplacez l' hôte autorisé par [*] ---cela rend votre application accessible à n'importe quel hôte global.
Allez maintenant dans votre tableau de bord Heroku et cliquez sur l'application nouvellement créée, suivie des paramètres . Dans les paramètres, faites défiler vers le bas et cliquez sur Add buildpack . 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 :
pip install django-heroku
Maintenant, ajoutez le package nouvellement installé au fichier requirements.txt en exécutant :
pip freeze > requirements.txt
Ensuite, ouvrez le fichier settings.py de votre projet et tapez :
import django_heroku
Aussi, sur la dernière ligne de settings.py , activez django-heroku en ajoutant :
django_heroku.settings(locals()) #ensure that you comment this line out after deployment
Une fois cela fait, lancez un référentiel distant en tapant ce qui suit dans votre ligne de commande :
heroku init
Ensuite, créez un référentiel d'applications Heroku en exécutant :
heroku git:remote -a ademosapp2 #replace ademosapp2 with your app's name
Pour vérifier les fichiers qui doivent être validés, exécutez :
git status
Ensuite, saisissez la commande suivante pour ajouter toutes les modifications à votre référentiel :
git add --all
Une fois les modifications ajoutées, validez vos modifications dans Heroku en exécutant la commande :
git commit -m "initial-commit"
Notez que "initial-commit" peut utiliser n'importe quel nom que vous aimez.
Ensuite, vous devez désactiver collectstatic en utilisant ce qui suit :
heroku config:set DISABLE_COLLECTSTATIC=1
Sinon, vous pourriez rencontrer des problèmes pendant le processus de déploiement.
Pour enfin pousser vos fichiers vers votre référentiel Heroku, utilisez la commande :
git push heroku master
Cela envoie 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.
Heroku peut-il héberger une application qui ne fonctionne pas sur Python ?
Vous pouvez héberger une variété de versions d'applications sur Heroku ; les mêmes processus Git que nous avons traités ici fonctionnent pour d'autres langages que Python. Vous n'avez qu'à 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 peut être une bonne option.