Heroku ist eine containerbasierte Cloud-Plattform als Service (PaaS). Entwickler verwenden Heroku, um moderne Apps bereitzustellen, zu verwalten und zu skalieren. Es bietet eine Auswahl von vier Infrastrukturanbietern. Es verwendet sprachspezifische Build-Packs. Und es hostet Apps, die in jeder Sprache geschrieben sind. Heroku wurde erstmals 2007 bereitgestellt und 2008 als Open Source veröffentlicht. Seitdem hat sich Heroku zu einem wichtigen Akteur in der Cloud-Branche entwickelt und bietet heute eine breite Palette von Produkten und Dienstleistungen zur Unterstützung von Entwicklern an. In diesem Tutorial zeige ich Ihnen, wie Sie Ihre Flask-API in Heroku bereitstellen.

Webhosting ist ein häufiger Stolperstein für Anfänger, und in diesem Artikel helfen wir Ihnen, ihn Schritt für Schritt zu überwinden. Das hört sich jetzt vielleicht schwierig an, ist es aber gar nicht. Tatsächlich können Sie innerhalb von Minuten einsatzbereit sein, und dann ist Ihre App live im Internet. Wir werden so viel wie möglich vom Prozess abdecken und jede Phase so reibungslos wie möglich durchlaufen, damit Sie auf Ihrem Weg, Ihre Flask-App mit Heroku online zu bringen, nichts Wichtiges verpassen!

Voraussetzungen

Bevor wir beginnen, sollten Sie sich zunächst für ein Heroku-Konto anmelden, was Sie tun können, indem Sie hierher gehen und das Formular ausfüllen. Danach ist es wichtig, dass Sie etwas Software installieren, damit Ihre Webanwendung ordnungsgemäß ausgeführt werden kann – insbesondere bei Heroku konzentrieren wir uns auf die Installation einiger erforderlicher Softwareanforderungen für unsere Python-Webanwendung, was wiederum nicht sehr viel ist im Vergleich zu alle anderen Dienste oder Apps.

Installieren Sie Git

Eines der wichtigsten Dinge, die wir zum Bereitstellen unserer Flask-Anwendung für Heroku benötigen, ist Git. Git ist eine Versionskontrollsoftware, die in der Lage sein muss, Änderungen an Dateien zu speichern und zu verfolgen. In Git ist jede Datei ein eigenes Repository. Sie können es verwenden, um Ihre Arbeit zu speichern, Fehler rückgängig zu machen und einfach mit anderen Benutzern zusammenzuarbeiten. Heroku verwendet Git, um die Daten zu erhalten, die Sie hochladen möchten. Es macht es auch einfacher, Änderungen an den Daten vorzunehmen, wann immer Sie dies tun müssen.

Linux

Unter Linux kann Git über das Paketverwaltungstool installiert werden, das mit Ihrer Distribution geliefert wird. Wenn Sie auf einem Debian-basierten System wie Ubuntu arbeiten, versuchen Sie es mit apt:

sudo apt install git-all

Und wenn Sie Fedora oder (jede verwandte RPM-basierte Distribution) ein anderes Betriebssystem wie CentOS verwenden, können Sie dnf verwenden:

sudo dnf install git-all

Mac

Git ist wahrscheinlich bereits auf Mac-basierten Systemen installiert. Es wird mit Xcode als Binärpaket geliefert, sodass es nur eine Frage des ersten Versuchs wäre, git vom Terminal aus auszuführen:

git --version

Wenn Sie es noch nicht installiert haben, werden Sie von einem Dialogfeld aufgefordert, es zu installieren.

Alternativ, wenn Sie Brew installiert haben, führen Sie einfach Folgendes aus:

brew install git

Windows

Es gibt viele Möglichkeiten, wie Sie es unter Windows herunterladen können, aber am einfachsten wäre es, es einfach von der offiziellen Gits-Website zu installieren.

Git einrichten

Wenn Sie Git zum ersten Mal installieren, sollten Sie als Erstes Ihren Benutzernamen und Ihre E-Mail-Adresse einrichten. Diese Informationen sind für Git wichtig, da sie für die Anmeldung bei Repositories benötigt werden. Stellen Sie daher sicher, dass diese Informationen korrekt sind, bevor Sie mit der Verwendung von Git beginnen.

git config --global user.name "example name"
git config --global user.email [email protected]

Installieren Sie die Heroku-CLI

Nach der Installation und Einrichtung von Git können wir fortfahren und die Heroku-CLI installieren, die unsere Hauptsoftware ist, die uns bei der Bereitstellung unserer Flask-Anwendung helfen würde. Die Heroku-CLI für alle Betriebssysteme finden Sie auf ihrer offiziellen Seite. Installieren Sie sie dort für Ihr jeweiliges Betriebssystem.

Bereitstellen einer Flask-API auf Heroku

Nachdem wir alle Voraussetzungen installiert und eingerichtet haben, können wir endlich mit der Bereitstellung unserer Flask-Anwendung beginnen und zeigen, dass ich eine sehr einfache Flask-Anwendung erstellt habe, mit der ich den gesamten Prozess demonstriere.

Erstellen Sie eine Flask-Anwendung

Wenn Sie dieselbe Anwendung neu erstellen möchten, die ich erstellt habe, können Sie den folgenden Code in Ihre main.py- bzw. wsgi.py-Dateien einfügen.

#app/main.py

from flask import Flask

app = Flask(__name__)

@app.route("/")
def home_view():
        return "<h1>Hello World!</h1>"
#wsgi.py

from app.main import app

if __name__ == "__main__":
        app.run()

Es ist eine einfache Anwendung, die eine Hallo-Welt-Textnachricht anzeigt.

Erstellen Sie eine virtuelle Umgebung

Jetzt müssen Sie eine virtuelle Umgebung verwenden, um Ihre Flask-Anwendung bereitzustellen. Dieser Schritt ist unbedingt erforderlich, denn ohne eine virtuelle Umgebung wird Heroku Ihre Bewerbung nicht annehmen.

Sie können eine virtuelle Umgebung auf folgende Weise erstellen:

Installieren Sie eine virtuelle Umgebung, falls noch nicht geschehen

python3 -m pip install --user virtualenv  #Linux/Macpy -m pip install --user virtualenv  #Windows

Erstellen und aktivieren Sie es im Projektordner selbst:

#Linux/Macpython3 -m venv env  source env/bin/activate
#Windows
py -m venv env  .\env\Scripts\activate

Fügen Sie Ihrer Anwendung einen professionellen Server hinzu

Um Heroku zum Pushen unseres Codes zu verwenden, müssen wir ein paar Änderungen an unserer App vornehmen, ein paar Optimierungen hier und da. Bis jetzt haben wir den Entwicklungsserver verwendet, der mit Fläschchen geliefert wird und für Entwicklungszwecke gut geeignet ist, aber es ist kein professioneller Webserver und wir benötigen einen, um unseren Code an Heroku senden zu können. Wir können also einen leichtgewichtigen WSGI-HTTP-Server namens Gunicorn installieren und in unsere App integrieren.

Wir können Gunicorn installieren mit:

pip install gunicorn

Jetzt müssen wir dies verwenden und Heroku weiß, dass wir diesen Server verwenden müssen. Dazu müssen wir eine Datei namens procfile erstellen, die eine Heroku-spezifische Datei ist. Gehen Sie in Ihr Projektverzeichnis und erstellen Sie eine neue Datei und nennen Sie sie auf diese Weise „Procfile“. Geben Sie diese Datei ein und schreiben Sie die folgende Codezeile hinein:

web: gunicorn wsgi:app  

Hinweis: Möglicherweise müssen Sie dies entsprechend Ihrer Anwendung bearbeiten

Erstellen der erforderlichen Dateien

Wir müssen unserem Projekt auch noch einige Dinge hinzufügen, damit der Bereitstellungsprozess reibungslos verläuft. Es gibt eine requirements.txt-Datei, die definiert, welche Module wir verwenden.

Es ist ziemlich einfach zu machen, Sie können sie wie unten gezeigt schreiben:

#requirements.txt

gunicorn
flask

Um unseren Code jetzt nach Heroku zu pushen, muss er in Form eines Git-Repository vorliegen, das ist der Grund, warum wir Git am Anfang des Artikels zuerst installiert haben. Gehen Sie dazu in Ihr Projektverzeichnis, öffnen Sie das Terminal und führen Sie den folgenden Befehl aus:

git init 

Dadurch wird ein leeres Repository namens „master“ erstellt, in das wir unseren Code verschieben können. Das können wir mit:

git add .

Das „hinzufügen .“ im Befehl gibt an, dass wir alle Dateien in das Repository verschieben müssen. Danach müssen wir das nur noch an das Repository übergeben, indem wir:

git commit -am 'initial commit'

Sie können den Commit beliebig benennen, anstatt „Initial Commit“.

Bereitstellen der Anwendung

Wir sind jetzt bereit, unsere Flask-Anwendung auf Heroku zu übertragen, und melden uns zunächst an:

heroku login 

Dadurch werden Sie aufgefordert, sich bei dem geöffneten Browser-Tab anzumelden, sich anzumelden und den Tab zu schließen. Sie sollten ein solches Ergebnis in Ihrem Terminal erhalten.

Lassen Sie uns nun eine Domäne erstellen, in der Sie Ihre App veröffentlichen können, und führen Sie den folgenden Code aus:

heroku create  #run this for a random nameheroku create <any-name-you-want>  #or write any name you want

Und es wird eine Domäne erstellt, die ungefähr so ​​​​aussehen würde:

Und jetzt ist der letzte Schritt, alles zu Heroku zu schieben, und wir können das tun mit:

git push heroku master

Was im Erfolgsfall eine Antwort wie diese zurückgeben würde:

Ausgabe

Jetzt können Sie zu der von uns erstellten Domain gehen, die in unserem Fall https://limitless-wildwood-42018.herokuapp.com lautet, und sich die Ergebnisse selbst ansehen. Die von mir erstellte App sieht so aus:

Letzte Worte

Die Bereitstellung einer Flask-Anwendung auf Heroku ist ein Kinderspiel. Alles, was Sie tun müssen, ist, ein Heroku-Konto zu erstellen und eine App zu erstellen, und alle Hosting-bezogenen Dinge werden von Heroku selbst erledigt.

Lassen Sie uns einen kurzen Überblick darüber geben, was wir gerade getan haben. Wir haben den Gunicorn-Webserver installiert, eine requirements.txt-Datei und eine Proc-Datei erstellt, die Git-Versionskontrolle auf Ihrem Computer eingerichtet (was für die Bereitstellung von Apps unerlässlich ist) und die kostenlose Version installiert Heroku Toolbelt-Software und stellen Sie dann Ihre App in Heroku bereit!