Sie haben also gerade eine einfache Portfolio-Website mit Python erstellt und möchten sie mit kostenlosem Hosting einrichten. Sie haben vom kostenlosen Hosting von Heroku gehört, verstehen aber die damit verbundenen technischen Details nicht ganz.
Diese Anleitung hilft Ihnen, den gesamten Prozess des kostenlosen Hostens Ihrer Python-Website auf Heroku auf viel einfachere Weise durchzuarbeiten. Wir gehen davon aus, dass Sie über Grundkenntnisse in Python und mindestens einem seiner Frameworks verfügen – vorzugsweise Django.
Warum Heroku wählen?
Heroku ist ein Platform as a Service (PaaS)-Webhosting-Anbieter, der seine Infrastruktur auf einem sogenannten Dynos betreibt. Sie können sich auf die Bereitstellung konzentrieren, während Sie sich um die Schwierigkeiten bei der Wartung und dem Aufbau Ihrer Webinfrastruktur kümmern.
Falls Sie sich kostenpflichtiges Hosting nicht leisten können, aber schnell ein Online-Portfolio aufbauen möchten, sollten Sie es in Betracht ziehen, es auf Heroku zu hosten. Abgesehen davon, dass es kostenlos ist, ist es ziemlich schnell, Ihre Website auf Heroku einzurichten.
Natürlich gibt es andere Plattformen, auf denen Sie Ihre Python-Website kostenlos hosten können, z. B. Amazon Web Services und PythonAnywhere. Aber der Prozess des Hostens auf Heroku ist einfach – insbesondere für Personen ohne Vorkenntnisse in der Bereitstellung.
Wenn Sie eine Website kostenlos auf Heroku hosten, benötigen Sie nicht unbedingt einen Domainnamen. Sie müssen lediglich Ihren App-Namen auf der Hosting-Plattform angeben. Heroku erstellt dann einen app.herokuapp.com- Locator für Sie. Wenn Sie diesen kostenlosen Service nutzen, läuft Ihre Site auf Heroku Dynos.
Wenn Sie sich später entscheiden, zu skalieren und einen Domainnamen zu erhalten, ist das genauso einfach und schnell, aber Sie müssen dafür bezahlen. Die überwältigenden Kosten für die Wartung des Upgrades könnten dazu führen, dass Sie es überdenken, aber es ist das Geld wert, wenn Sie entschlossen sind, mehr in das Projekt zu investieren.
Lassen Sie uns nun untersuchen, wie Sie Ihre Python-Website kostenlos auf Heroku hosten. Beachten Sie, dass dies auf Python-Version 3.7 und Django-Version 2.1.7 basiert.
Git und Heroku einrichten
Laden Sie zunächst Git von der git-scm-Website herunter . Die verschiedenen Befehle und Wendungen, um Git auf allen Betriebssystemen zu installieren, werden dort erklärt.
Nach der Installation von Git müssen Sie auf der Heroku-Anmeldeseite auch ein Konto bei Heroku einrichten, falls Sie noch kein Konto haben.
Laden Sie als Nächstes die Heroku-CLI von der Heroku-Website herunter und installieren Sie sie . Über die Heroku-CLI können Sie jedes Mal mit Ihrem Repository kommunizieren, wenn Sie Änderungen an Ihrer App festschreiben müssen.
Wenn Sie mit Git-Befehlen noch nicht vertraut sind, sollten Sie sich unsere Einführung in die Versionskontrolle mit Git ansehen .
Ein Django-Projekt einrichten
Wenn Sie kein Django-Projekt eingerichtet haben und es mit diesem Tutorial ausprobieren möchten, öffnen Sie die Befehlszeile und erstellen Sie eine virtuelle Umgebung, falls Sie noch keine haben. Sobald die virtuelle Umgebung bereit ist, verwenden Sie diesen Befehl, um das Django-Framework zu installieren:
pip install django==2.1.7
Nachdem Django in der virtuellen Umgebung installiert wurde, führen Sie den folgenden Befehl aus, um ein neues Django-Projekt zu starten:
django-admin.py startproject project_name
Erstellen Sie als Nächstes eine neue Python-App. Migrieren Sie dazu in den Stammordner Ihres Projekts auf dem CMD und führen Sie Folgendes aus:
python manage.py startapp app_name
Denken Sie daran, project_name und app_name durch Ihre bevorzugten Namen zu ersetzen .
Sie benötigen dazu das Modul gunicorn , daher sollten Sie auch pip install gunicorn ausführen . Fügen Sie dann gunicorn der Liste der installierten Apps in settings.py hinzu , wie unten gezeigt:
Dies ist nur eine oberflächliche Einführung in das Erstellen einer Django-App. Unabhängig davon , ob Ihre App bereit ist oder Sie gerade eine erstellen , stellen Sie sicher, dass Ihr Run python manage.py migriert , um Ihre Datenbank zu erstellen.
Sie sollten jetzt eine Python-App in Ihrem Django-Framework ausführen. Jetzt werden wir in unser Hauptziel eintauchen.
Bereitstellen Ihrer App auf Heroku
Für eine erfolgreiche Bereitstellung Ihrer App in Heroku müssen Sie eine Datei Requirements.txt einrichten . Führen Sie zum Einrichten Folgendes auf Ihrem CMD aus:
pip freeze > requirements.txt
Diese Zeile erstellt eine .txt- Datei, die alle Pakete enthält, die für die Bereitstellung Ihres Projekts verwendet werden. Heroku untersucht diese Datei während der Bereitstellung und installiert diese Pakete automatisch.
Eine weitere wichtige Datei, die Sie angeben müssen, ist die Procfile . Dies teilt Heroku mit, dass die Befehle bei der Initialisierung der App ausgeführt werden sollen. Sie müssen diese Datei jedoch erstellen, indem Sie explizit eine neue Textdatei namens Procfile in Ihrem Projektstamm erstellen . Stellen Sie sicher, dass diese Datei keine Dateierweiterung hat. sonst wird es nicht funktionieren.
Um die Dateierweiterung aus der Procfile in Windows zu entfernen, öffnen Sie den Ordner im Datei-Explorer, klicken Sie in der oberen Symbolleiste auf Ansicht und aktivieren Sie das Kontrollkästchen Dateinamenerweiterungen . Sie sehen dann die Erweiterungen für alle Dateien, einschließlich der Erweiterung .txt für Procfile . Klicken Sie mit der rechten Maustaste auf Procfile und wählen Sie Umbenennen , entfernen Sie dann einfach die Erweiterung .txt und drücken Sie die Eingabetaste .
Öffnen Sie als Nächstes die Procfile und fügen Sie die folgende Zeile hinzu, wobei Sie project_name durch den Namen ersetzen , der für Ihr Projekt gilt:
web: gunicorn project_name.wsgi
Optional können Sie auch eine runtime.txt- Datei erstellen . Öffnen Sie die Datei und geben Sie die Python-Version wie folgt an:
python-3.7.6
So teilen Sie Heroku die Python-Version mit, auf der Ihre App ausgeführt wird. Wenn Sie diese Datei nicht angeben, verwendet Heroku standardmäßig nur die neueste Version von Python.
Melden Sie sich als Nächstes in der Eingabeaufforderung bei Ihrem Heroku-Konto an, indem Sie diesen Befehl ausführen:
heroku login
Dieser Befehl öffnet Ihren Standardbrowser auf der Heroku-Anmeldeseite, auf der Sie Ihre Anmeldeinformationen eingeben können.
Um eine App auf Heroku zu erstellen, geben Sie die folgende Zeile ein:
heroku create ademosapp2
Ersetzen Sie ademosapp2 durch Ihren bevorzugten App-Namen. Wenn Ihr ausgewählter App-Name verwendet wird, werden Sie in einer Meldung aufgefordert, einen neuen Namen auszuwählen.
Klicken Sie auf der Anmeldeseite auf das Heroku-Logo, um sich bei Ihrem Heroku-Dashboard anzumelden. Sie sollten nun die soeben erstellte App sehen.
Öffnen Sie als Nächstes Ihren bevorzugten Texteditor für den Speicherort Ihres Projekts und rufen Sie die settings.py Ihres Projekts auf . In der settings.py Datei, ändern Sie die zugelassenen Rechner zu [*] --- das macht den App einen globalen Host zugänglich.
Gehen Sie nun in Ihr Heroku-Dashboard und klicken Sie auf die neu erstellte App, gefolgt von Einstellungen . Scrollen Sie in den Einstellungen nach unten und klicken Sie auf Buildpack hinzufügen . Wählen Sie dann Python als Buildpack aus und klicken Sie auf Änderungen speichern .
Wechseln Sie als Nächstes zurück zu Ihrem CMD und führen Sie den folgenden Code aus, um Heroku in Ihrem Projekt zu installieren:
pip install django-heroku
Fügen Sie nun das neu installierte Paket zur Datei Requirements.txt hinzu , indem Sie Folgendes ausführen:
pip freeze > requirements.txt
Öffnen Sie dann die Datei settings.py Ihres Projekts und geben Sie Folgendes ein:
import django_heroku
Aktivieren Sie außerdem in der letzten Zeile von settings.py django-heroku, indem Sie Folgendes hinzufügen:
django_heroku.settings(locals()) #ensure that you comment this line out after deployment
Sobald dies erledigt ist, initiieren Sie ein Remote-Repository, indem Sie Folgendes in Ihre Befehlszeile eingeben:
heroku init
Erstellen Sie als Nächstes ein Heroku-App-Repository, indem Sie Folgendes ausführen:
heroku git:remote -a ademosapp2 #replace ademosapp2 with your app's name
Um die Dateien zu überprüfen, die festgeschrieben werden müssen, führen Sie Folgendes aus:
git status
Geben Sie als Nächstes den folgenden Befehl ein, um alle Änderungen zu Ihrem Repository hinzuzufügen:
git add --all
Sobald die Änderungen hinzugefügt wurden, übergeben Sie Ihre Änderungen an Heroku, indem Sie den folgenden Befehl ausführen:
git commit -m "initial-commit"
Beachten Sie, dass "initial-commit" jeden beliebigen Namen verwenden kann.
Als nächstes sollten Sie deaktivieren collectstatic mithilfe der folgenden:
heroku config:set DISABLE_COLLECTSTATIC=1
Andernfalls können während des Bereitstellungsprozesses Probleme auftreten.
Um Ihre Dateien schließlich in Ihr Heroku-Repository zu verschieben, verwenden Sie den Befehl:
git push heroku master
Dadurch werden alle Ihre Dateien an Heroku übertragen und die App von überall aus zugänglich. Um Ihre neu bereitgestellte App anzuzeigen , rufen Sie https://app_name.herokuapp.com in Ihrem Browser auf und ersetzen Sie app_name durch den Namen Ihrer App.
Kann Heroku eine App hosten, die nicht auf Python läuft?
Sie können eine Vielzahl von App-Builds auf Heroku hosten. die gleichen Git-Prozesse, die wir hier behandelt haben, funktionieren auch für andere Sprachen als Python. Sie müssen nur kleine Änderungen vornehmen, z. B. Ihr Build-Pack zurücksetzen.
Obwohl Heroku Ihnen kostenloses Hosting anbietet, wissen wir alle, dass kostenlose Inhalte mit einigen Einschränkungen verbunden sind. Wenn Sie jedoch nicht erwarten, dass Ihre Website viel Verkehr erhält, kann kostenloses Heroku-Hosting eine gute Option sein.