{"id":68330,"date":"2024-01-16T18:26:13","date_gmt":"2024-01-16T17:26:13","guid":{"rendered":"https:\/\/kinsta.com\/de\/?p=68330&#038;preview=true&#038;preview_id=68330"},"modified":"2024-01-24T13:11:42","modified_gmt":"2024-01-24T12:11:42","slug":"flask-python-anwendung","status":"publish","type":"post","link":"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/","title":{"rendered":"Mit Flask und Kinsta im Handumdrehen eine Python-Anwendung erstellen und bereitstellen"},"content":{"rendered":"<p><a href=\"https:\/\/kinsta.com\/de\/thema\/python\/\">Python<\/a> ist eine der beliebtesten <a href=\"https:\/\/kinsta.com\/de\/thema\/webentwicklung-sprachen\/\">Entwicklungssprachen<\/a>. Ihre einfache Syntax und die niedrigen Einstiegsh\u00fcrden machen sie zu einem guten Kandidaten f\u00fcr Programmieranf\u00e4nger, die sich einen Namen in der Softwareentwicklungslandschaft machen wollen.<\/p>\n<p>Zahlreiche Frameworks und Bibliotheken erleichtern den Einstieg in die Entwicklung von Python-Anwendungen. Dazu geh\u00f6ren <a href=\"https:\/\/docs.sevalla.com\/templates\/overviewpython-examples#django\">Django<\/a>, <a href=\"https:\/\/kinsta.com\/de\/blog\/fastapi\/\">FastAPI<\/a> und <a href=\"https:\/\/kinsta.com\/de\/blog\/flask-vs-django\/#what-is-flask\">Flask<\/a>. Das Flask-Framework ist f\u00fcr Python-Entwickler\/innen attraktiv, weil es einfaches Prototyping und Anpassungsm\u00f6glichkeiten bietet.<\/p>\n<p>Dieser praktische Artikel zeigt dir, wie du mit Flask eine einfache Python-Anwendung mit Datenbankanbindung entwickelst.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Python-Anwendungen einfacher gemacht mit Flask<\/h2>\n<p><a href=\"https:\/\/flask.palletsprojects.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Flask<\/a> wurde 2010 entwickelt und eignet sich dank seiner Benutzerfreundlichkeit und Flexibilit\u00e4t hervorragend f\u00fcr die Entwicklung von Python-Webanwendungen. Seine schlanke Architektur konzentriert sich auf die Bereitstellung der Grundlagen und macht es einfach, Bibliotheken f\u00fcr die von dir ben\u00f6tigten Funktionen hinzuzuf\u00fcgen. Dieser Ansatz macht Flask ideal f\u00fcr viele Projekte, von einfachen Anwendungen bis hin zu komplexen Systemen.<\/p>\n<p>Flask bietet verschiedene Werkzeuge und Funktionen zur Unterst\u00fctzung der Entwicklung von Webanwendungen, darunter:<\/p>\n<ul>\n<li>Bibliotheken und Werkzeuge zur Verwaltung von HTTP-Anfragen und -Antworten<\/li>\n<li>Die M\u00f6glichkeit, Anfragen an bestimmte Funktionen weiterzuleiten<\/li>\n<li>Unterst\u00fctzung f\u00fcr Rendering-Vorlagen<\/li>\n<li>Unterst\u00fctzung f\u00fcr Datenbanken<\/li>\n<li>Authentifizierungs- und Autorisierungssysteme<\/li>\n<\/ul>\n<h2>Wie du deine Python Flask Anwendung erstellst<\/h2>\n<p>Du kannst die Vorteile von Flask f\u00fcr die Entwicklung von Webanwendungen kennenlernen, indem du <a href=\"https:\/\/kinsta.com\/de\/blog\/python-tutorials\/\">eine Python-Webanwendung mit Flask erstellst<\/a>. Anschlie\u00dfend kannst du die Anwendung mit dem <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Web Anwendungs-Hosting-Dienst<\/a>\u00a0von Kinsta erstellen und bereitstellen und sie mit einer <a href=\"https:\/\/sevalla.com\/database-hosting\/\">verwalteten Datenbank<\/a> auf der Kinsta-Plattform verbinden.<\/p>\n<h3>Python Flask Anwendungs-Voraussetzungen<\/h3>\n<p>Um diesem Tutorial zu folgen, brauchst du:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.python.org\/downloads\/\" target=\"_blank\" rel=\"noopener noreferrer\">Python<\/a> Version 3 oder h\u00f6her<\/li>\n<li><a href=\"https:\/\/dev.mysql.com\/downloads\/installer\/\" target=\"_blank\" rel=\"noopener noreferrer\">MySQL Workbench<\/a><\/li>\n<li>Die Pakete <a href=\"https:\/\/pip.pypa.io\/en\/stable\/installation\/\" target=\"_blank\" rel=\"noopener noreferrer\">pip<\/a> und <a href=\"https:\/\/packaging.python.org\/en\/latest\/guides\/installing-using-pip-and-virtual-environments\/#installing-virtualenv\" target=\"_blank\" rel=\"noopener noreferrer\">virtualenv<\/a> von Python installiert<\/li>\n<li>Einen Code-Editor<\/li>\n<li>Ein Konto bei <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/bitbucket#grant-access-to-the-kinsta-bitbucket-application\">Bitbucket<\/a>, <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">GitHub<\/a> oder <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/gitlab#authorize-the-kinsta-gitlab-application\">GitLab<\/a>, um dein Git-Repository zu hosten<\/li>\n<li>Ein <a href=\"https:\/\/kinsta.com\/de\/anmelden\/?product_type=app-db\">MyKinsta-Konto<\/a> (kostenlose Anmeldung), um die Anwendung bereitzustellen<\/li>\n<\/ul>\n<h3>Installation von Flask f\u00fcr Python<\/h3>\n<p>Gehe zu deinem Terminal (Linux oder macOS) oder zur Eingabeaufforderung (Windows). Beginne damit, ein Verzeichnis namens <strong>flask_demo<\/strong> zu erstellen.<\/p>\n<p>Wechsle in das neue Verzeichnis und erstelle mit dem Befehl <code>python3 -m venv venv<\/code> eine virtuelle Python-Umgebung. In diesem Fall verwenden wir auch <strong>venv<\/strong> als Namen f\u00fcr das Verzeichnis, das die virtuelle Umgebung unterst\u00fctzt.<\/p>\n<p>Aktiviere die virtuelle Umgebung mit einem der folgenden Befehle:<\/p>\n<ul>\n<li><code>venvScriptsactivate<\/code> unter Windows<\/li>\n<li><code>source venv\/bin\/activate<\/code> unter Linux oder macOS<\/li>\n<\/ul>\n<p>Installiere nun Flask mit <strong>pip<\/strong>, indem du <code>pip install flask<\/code> ausf\u00fchrst.<\/p>\n<p>Die bisherige Arbeit in deinem Terminal sollte in etwa so aussehen:<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-virtual-environment-installing-flask.png\" alt=\"Terminalausgabe w\u00e4hrend der Erstellung einer virtuellen Python-Umgebung und der Installation von Flask.\" width=\"960\" height=\"556\"><figcaption class=\"wp-caption-text\">Erstellen der Grundlage einer Python-Flask-Anwendung im Terminal<\/figcaption><\/figure>\n<h3>Erstellen einer Basisanwendung<\/h3>\n<p>Als N\u00e4chstes erstellst du die Basisanwendung und \u00fcberpr\u00fcfst ihre Funktionalit\u00e4t, indem du Inhalte im Browser wiedergibst.<\/p>\n<p>Erstelle im Verzeichnis <strong>flask_demo<\/strong> eine Datei namens <strong>demo.py<\/strong> und f\u00fcge den folgenden Code hinzu:<\/p>\n<pre><code class=\"language-python\">from flask import Flask\n\napp = Flask(__name__)\n\n# Routes\n@app.route('\/')\ndef index():\n    return \"Happy Coding!\"\n\nif __name__ == '__main__':\n    app.run(debug=True)<\/code><\/pre>\n<p>Dieser Code importiert Flask aus dem Modul <code>flask<\/code> und erstellt eine Instanz davon mit dem Namen <code>app<\/code>. Der Code erstellt dann eine Route, die den Text &#8222;Happy Coding!&#8220; zur\u00fcckgibt, wenn Nutzer die Anwendung in einem Browser besuchen. Schlie\u00dflich f\u00fchrt er den Entwicklungsserver aus, sobald das Skript startet.<\/p>\n<p>Starte die Anwendung, indem du <code>flask --app demo run<\/code> im Terminal ausf\u00fchrst. Das Flag <code>--app<\/code> gibt den Speicherort der Anwendung an, die ausgef\u00fchrt werden soll &#8211; hier die Datei <strong>demo.py<\/strong>.<\/p>\n<h3>Hinzuf\u00fcgen von Vorlagen zu deiner Python-Flask-Anwendung<\/h3>\n<p>Wenn du deiner Anwendung Vorlagen hinzuf\u00fcgst, kannst du deinen Inhalt erweitern. Erstelle zun\u00e4chst ein Verzeichnis namens <strong>templates<\/strong> im Stammverzeichnis deiner Anwendung. Wechsle dann in das <strong>templates-Verzeichnis<\/strong> und erstelle eine Datei namens <strong>index.html<\/strong>, die den folgenden HTML-Code enth\u00e4lt:<\/p>\n<pre><code class=\"language-html\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;HomePage&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h3&gt;Flask Demo Application&lt;\/h3&gt;\n    &lt;p&gt;My name is John Doe - learning about Application Deployment!&lt;\/p&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>Importiere in <strong>demo.py<\/strong> <strong>render_template<\/strong> aus dem Flask-Modul und rendere die Vorlage <strong>index.html<\/strong> in der Funktion route wie folgt:<\/p>\n<pre><code class=\"language-python\">from flask import Flask, <strong>render_template<\/strong>\n\napp = Flask(__name__)\n\n# Routes\n@app.route('\/')\ndef index():\n    return render_template('index.html')\n\nif __name__ == '__main__':\n    app.run(debug=True)<\/code><\/pre>\n<p>Als N\u00e4chstes rufst du deine Anwendung unter <code>flask --app demo run<\/code> in deiner lokalen Umgebung auf. Verwende die im Terminal angegebene lokale Adresse, um die Anwendung in deinem Browser zu starten. Du solltest etwas wie das hier sehen:<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-basic-application-in-browser.png\" alt=\"Screenshot eines Webbrowsers, der die Anfangsphase der Flask-Anwendung anzeigt.\" width=\"960\" height=\"441\"><figcaption class=\"wp-caption-text\">Die Anf\u00e4nge einer Python-Flask-Anwendung in einem Webbrowser<\/figcaption><\/figure>\n<h3>Verbinden deiner Flask-Anwendung mit einer lokalen Datenbank<\/h3>\n<p>Du wirst eine Verbindung zu einer lokalen Datenbank &#8211; MySQL &#8211; herstellen, in der die Inhalte der Anwendung gespeichert werden.<\/p>\n<p>Um deine Flask-Anwendung mit MySQL zu verbinden, installiere Folgendes:<\/p>\n<ul>\n<li><strong>flask_mysqldb<\/strong>, den MySQL-Konnektor f\u00fcr Flask, mit <code>pip install flask_mysqldb<\/code><\/li>\n<li><strong>Python-dotenv<\/strong>, zum Lesen von Umgebungsvariablen, mit <code>pip install python-dotenv<\/code><\/li>\n<li>Den Python-MySQL-Konnektor, mit <code>pip install mysql-connector-python<\/code><\/li>\n<li>Die MySQL-Abh\u00e4ngigkeit, mit <code>pip install mysqlclient<\/code><\/li>\n<\/ul>\n<p>Gehe zur MySQL Workbench, um eine Datenbank zu erstellen. Vergewissere dich, dass du einen Datenbankbenutzer mit der Berechtigung zum Zugriff auf die Datenbank und zum Erstellen von Tabellen hinzuf\u00fcgst.<\/p>\n<p>Erstelle eine <strong>.env-Datei<\/strong> im Hauptverzeichnis deiner Anwendung, in der du die Verbindungsdaten zur Datenbank speicherst. In diese Vorlage f\u00fcgst du die Anmeldedaten deines Datenbankbenutzers und den Namen der Datenbank ein:<\/p>\n<pre><code class=\"language-makefile\">DB_HOST=\"localhost\"\nDB_USER=\"your-db-user\"\nDB_PASSWORD=\"your-db-password\"\nDB_NAME=\"your-db-name\"<\/code><\/pre>\n<p>In einem \u00fcberarbeiteten <strong>demo.py-Skript<\/strong> importieren wir nun den MySQL-Konnektor und verwenden <strong>Python-dotenv<\/strong>, um die Umgebungsvariablenschl\u00fcssel in der <strong>.env-Datei<\/strong> zu lesen. Dieses neue <strong>demo.py-Skript<\/strong> pr\u00fcft auch, ob eine Tabelle mit dem Namen <strong>Personen<\/strong>\u00a0in der Datenbank vorhanden ist, und legt sie an, wenn sie nicht existiert.<\/p>\n<pre><code class=\"language-python\">import os\nfrom flask import Flask, render_template\nfrom flask_mysqldb import MySQL\n\nfrom dotenv import load_dotenv\nload_dotenv()\n\napp = Flask(__name__)\n\napp.config['MYSQL_HOST'] = os.getenv(\"DB_HOST\")\napp.config['MYSQL_USER'] = os.getenv(\"DB_USER\")\napp.config['MYSQL_PASSWORD'] = os.getenv(\"DB_PASSWORD\")\napp.config['MYSQL_DB'] = os.getenv(\"DB_NAME\")\n\nmysql = MySQL(app)\n\n@app.route('\/')\ndef index():\n    cursor = mysql.connection.cursor()\n\n    cursor.execute(\"SHOW TABLES LIKE 'persons'\")\n    result = cursor.fetchone()\n\n    if not result:\n        cursor.execute(''' CREATE TABLE persons (id INTEGER, firstname VARCHAR(20), lastname VARCHAR(20)) ''')\n        cursor.execute(''' INSERT INTO persons VALUES(1, 'John', 'Doe') ''')\n        cursor.execute(''' INSERT INTO persons VALUES(2, 'Milly', 'Winfrerey') ''')\n        mysql.connection.commit()\n\n    cursor.execute('SELECT * FROM persons')\n    entry = cursor.fetchall()\n    cursor.close()\n    return render_template('index.html', entry=entry)<\/code><\/pre>\n<p>Nach der Instanziierung von Flask verwendet der obige Code Umgebungsvariablen, um die Datenbankattribute aus der <strong>.env-Datei<\/strong> im Stammverzeichnis deiner Anwendung zu erfassen.<\/p>\n<p>Dann instanziiert der Code MySQL und verbindet es mit Flask. Er erstellt ein Cursor-Objekt in der <code>index<\/code> Route. Als N\u00e4chstes sucht der Code in der Datenbank nach einer Tabelle namens <strong>Personen<\/strong>. Wenn sie nicht gefunden wird, erstellt er sie mit den Attributen <code>id<\/code>, <code>firstname<\/code> und <code>lastname<\/code> und f\u00fcgt zwei Datenzeilen ein.<\/p>\n<p>Die n\u00e4chsten drei Zeilen f\u00fchren einen SQL-Befehl aus, um alle Zeilen aus der <strong>Personentabelle<\/strong> auszuw\u00e4hlen und die Ergebnisse abzurufen. Das Cursor-Objekt wird geschlossen und die Ergebnisse der Abfrage werden als Kontextvariable <code>entry<\/code> \u00fcbergeben, um mit der Vorlage gerendert zu werden.<\/p>\n<p>Hier ist eine \u00fcberarbeitete <strong>index.html-Vorlagendatei<\/strong>, die die Ergebnisse der Datenbankabfrage verarbeiten kann:<\/p>\n<pre><code class=\"language-html\">&lt;!DOCTYPE html&gt;&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;HomePage&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h3&gt;Flask Demo Application&lt;\/h3&gt;\n    {% for e in entry %}\n        &lt;p&gt;My name is {{e[1]}} {{e[2]}} - learning about Application Deployment!&lt;\/p&gt;\n    {% endfor %}\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>F\u00fchre die Anwendung aus und kehre dann zur MySQL Workbench zur\u00fcck, um die Daten zu \u00fcberpr\u00fcfen. Sie sollte wie die folgende aussehen:<\/p>\n<figure style=\"width: 900px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/flask-application-data-queried-in-mysql-workbench.png\" alt=\"Abfrageergebnisse f\u00fcr die &lt;strong&gt;Personentabelle&lt;\/strong&gt; in MySQL Workbench\" width=\"900\" height=\"172\"><figcaption class=\"wp-caption-text\">Abfrageergebnisse f\u00fcr die <strong>Personentabelle<\/strong> in MySQL Workbench<\/figcaption><\/figure>\n<p>Wenn du die Tabelle abfragst, werden die beiden von der Anwendung erzeugten Eintr\u00e4ge zur\u00fcckgegeben. Deine Anwendung zeigt nun die folgenden von der Datenbank abgeleiteten Inhalte im Browser an:<\/p>\n<figure id=\"attachment_172615\" aria-describedby=\"caption-attachment-172615\" style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-172615 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-database-application-in-browser.png\" alt=\"Screenshot des aus der Datenbank generierten Inhalts.\" width=\"960\" height=\"441\"><figcaption id=\"caption-attachment-172615\" class=\"wp-caption-text\">Datenbank-generierte Inhalte im Browser<\/figcaption><\/figure>\n<h2>So stellst du deine Python-Flask-Anwendung auf Kinsta bereit<\/h2>\n<p>Jetzt, wo deine Anwendung lokal l\u00e4uft, kannst du sie f\u00fcr die Welt sichtbar machen, indem du sie auf Kinsta hostest. Du kannst die Kinsta-Dienste <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Web Anwendungs-Hosting<\/a> und <a href=\"https:\/\/sevalla.com\/database-hosting\/\">Managed Datenbank-Hosting<\/a> kombinieren, um diese Anwendung (und deine zuk\u00fcnftigen Projekte) in der Cloud zum Leben zu erwecken. Und du kannst <a href=\"https:\/\/kinsta.com\/de\/anmelden\/?product_type=app-db\">beides kostenlos testen<\/a>.<\/p>\n<h3>Dein Python-Projekt f\u00fcr die Bereitstellung vorbereiten<\/h3>\n<p>Die Web Anwendungs-Hosting-Plattform von Kinsta stellt deinen Code von deinem bevorzugten Git-Host bereit. Im n\u00e4chsten Schritt musst du deine Anwendungsumgebung so konfigurieren, dass sie diesen Weg unterst\u00fctzt und Kinsta deine Anwendung mit allen erforderlichen Abh\u00e4ngigkeiten bereitstellen kann.<\/p>\n<p>Beginne damit, ein neues Verzeichnis im Stammverzeichnis deines <strong>flask_demo-Projekts<\/strong> zu erstellen. Nennen wir es <strong>myapp.<\/strong> Verschiebe dann das Verzeichnis <strong>templates<\/strong> und die Datei <strong>demo.py<\/strong> in <strong>myapp<\/strong>.<\/p>\n<p>Im <strong>myapp-Verzeichnis<\/strong> erstellst du eine <strong>wsgi.py-Datei<\/strong> mit folgendem Inhalt:<\/p>\n<pre><code class=\"language-python\">from myapp.demo import app as application\n\nif __name__ == \"__main__\":\n    application.run(debug=True)<\/code><\/pre>\n<p>Der Build-Prozess bei Kinsta wird auch <strong>pip<\/strong> verwenden, um deine Anwendung zu erstellen. Du kannst eine Liste der Abh\u00e4ngigkeiten deiner Anwendung an <strong>pip<\/strong> auf der Produktionsseite \u00fcbergeben, indem du eine <strong>requirements.txt-Datei<\/strong> im Hauptverzeichnis des Projekts erstellst.<\/p>\n<p>Wenn du noch in der virtuellen Umgebung <strong>venv<\/strong> und im Stammverzeichnis von <strong>flask_demo<\/strong> arbeitest, kannst du mit folgendem Befehl eine f\u00fcr dein Projekt spezifische <strong>requirements.txt-Datei<\/strong> erstellen:<\/p>\n<pre><code class=\"language-bash\">pip freeze &gt; requirements.txt<\/code><\/pre>\n<p>Der Inhalt der resultierenden Textdatei sieht dann etwa so aus:<\/p>\n<pre><code class=\"language-makefile\">blinker==1.7.0\nclick==8.1.7\nFlask==3.0.0\nFlask-MySQLdb==2.0.0\nitsdangerous==2.1.2\nJinja2==3.1.2\nMarkupSafe==2.1.3\nmysql-connector-python==8.2.0\nmysqlclient==2.2.1\nprotobuf==4.21.12\npython-dotenv==1.0.0\nWerkzeug==3.0.1<\/code><\/pre>\n<p>Du wirst die <strong>.env-Datei<\/strong> mit ihren Datenbankgeheimnissen nicht an den Produktionsserver senden. Da du die Bibliothek <code>python-dotenv<\/code> nicht brauchst, um <strong>.env<\/strong> in der Produktion zu lesen, kannst du ihren Verweis aus der Datei <strong>requirements.txt<\/strong> entfernen und diese Zeilen in der Datei <strong>demo.py<\/strong> l\u00f6schen (oder auskommentieren):<\/p>\n<pre><code class=\"language-python\">from dotenv import load_dotenv\nload_dotenv()<\/code><\/pre>\n<h4>Hinzuf\u00fcgen eines Python WSGI HTTP Servers zum Projekt<\/h4>\n<p>Was in den obigen Anforderungen noch fehlt, ist eine M\u00f6glichkeit, die Anwendung \u00fcber HTTP in einer Produktionsumgebung bereitzustellen. Der Entwicklungsserver, den du auf deinem lokalen Rechner benutzt, reicht nicht aus. F\u00fcr dieses Projekt wirst du das Web Server Gateway Interface (WSGI) Paket <a href=\"https:\/\/gunicorn.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Gunicorn<\/a> zwischen der Anwendung und den <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-nginx\/\">Nginx<\/a> Webservern von Kinsta verwenden.<\/p>\n<p>Du kannst eine Gunicorn-Anforderung zu deinem Projekt hinzuf\u00fcgen, indem du es wie folgt in deiner virtuellen Umgebung installierst:<\/p>\n<pre><code class=\"language-bash\">pip install gunicorn<\/code><\/pre>\n<p>Nachdem Gunicorn installiert ist, generierst du mit <strong>pip<\/strong> erneut die <strong>requirements.txt<\/strong>.<\/p>\n<p>Eine Alternative zur lokalen Installation von Gunicorn ist es, die <strong>requirements.txt<\/strong> zu bearbeiten und einfach einen Eintrag wie diesen hinzuzuf\u00fcgen:<\/p>\n<pre><code class=\"language-makefile\">gunicorn==21.2.0<\/code><\/pre>\n<p>Um die Grundlagen f\u00fcr den WSGI-Server zu schaffen, erstellst du im Hauptverzeichnis des Projekts eine Datei namens <strong>Procfile<\/strong> und f\u00fcgst die folgende Zeile hinzu:<\/p>\n<pre><code class=\"language-makefile\">web: gunicorn myapp.wsgi<\/code><\/pre>\n<p>Dies wird die Grundlage f\u00fcr den Startbefehl deiner Anwendung in der Produktion sein.<\/p>\n<h4>Dein Projekt f\u00fcr Git bereit machen<\/h4>\n<p>Die \u00fcberarbeitete Verzeichnisstruktur ist bereit f\u00fcr die Bereitstellung bei Kinsta, aber du willst nicht, dass alle diese Dateien in die Produktion gehen. Erstelle eine <strong>.gitignore-Datei<\/strong> im Stammverzeichnis des Projekts mit folgendem Inhalt:<\/p>\n<pre><code class=\"language-makefile\">\/venv\n.env<\/code><\/pre>\n<p>Dies verhindert, dass die Dateien im Verzeichnis <strong>venv<\/strong> und die lokalen Datenbankgeheimnisse in <strong>.env<\/strong> auf deinen Git-Host hochgeladen werden.<\/p>\n<p>Jetzt kannst du deine lokale Git-Umgebung einrichten und den Code mit deinen bevorzugten Tools auf deinen Git-Host hochladen.<\/p>\n<h3>Bereitstellen deiner Python-Flask-Anwendung auf Kinsta<\/h3>\n<p>Melde dich in deinem MyKinsta-Dashboard an und vergewissere dich, dass du Kinsta f\u00fcr den Zugriff auf deinen <a href=\"https:\/\/docs.sevalla.com\/applications\/overviewapplication-getting-started#git-service-providers\">Git-Dienstanbieter<\/a> autorisiert hast. Folge den Schritten zum <a href=\"https:\/\/docs.sevalla.com\/applications\/get-started\/add-an-applicationadd-an-application\">Hinzuf\u00fcgen einer Anwendung<\/a> und w\u00e4hle das Repository und den Zweig auf dem Git-Host aus, in dem Kinsta den Code des Flask-Projekts finden soll.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Du w\u00e4hlst eines der vielen Rechenzentren aus, die weltweit f\u00fcr das Anwendungs-Hosting bei Kinsta zur Verf\u00fcgung stehen. Notiere dir deine Wahl, denn du m\u00f6chtest dasselbe f\u00fcr die Erstellung deiner Datenbank verwenden.<\/p>\n<\/aside>\n\n<p>Wenn du die Build-Umgebung konfigurierst, w\u00e4hle <strong>Buildpacks verwenden, um das Container-Image einzurichten<\/strong>, aber lass alle anderen Einstellungen auf den Standardwerten. (Du gibst keinen <strong>Start-Befehl<\/strong> an, da dieser bereits in deinem <strong>Procfile<\/strong> definiert ist)<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-application-mykinsta-build-environment.png\" alt=\"Screenshot der MyKinsta-Oberfl\u00e4che zum Konfigurieren einer Build-Umgebung.\" width=\"960\" height=\"856\"><figcaption class=\"wp-caption-text\">W\u00e4hle Buildpacks, um das Container-Image f\u00fcr die Anwendung einzurichten<\/figcaption><\/figure>\n<p>Nachdem du die Rechnungsinformationen gepr\u00fcft hast (du kannst immer noch kostenlos loslegen!), klickst du auf die Schaltfl\u00e4che <strong>Jetzt bauen<\/strong> und beobachtest den Fortschritt im Log Viewer:<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-application-mykinsta-deployment-progress.png\" alt=\"Screenshot der Log-Eintr\u00e4ge f\u00fcr eine Python-Flask-Anwendung.\" width=\"960\" height=\"617\"><figcaption class=\"wp-caption-text\">Log-Eintr\u00e4ge f\u00fcr die Bereitstellung deiner Python-Flask-Anwendung<\/figcaption><\/figure>\n<h3>Hinzuf\u00fcgen einer Datenbank f\u00fcr deine Python Flask Anwendung<\/h3>\n<p>Kinsta bietet vier verwaltete Datenbankoptionen an, um deinen Bed\u00fcrfnissen und Anwendungsanforderungen gerecht zu werden: Redis, PostgreSQL, MariaDB und MySQL. In diesem Lernprogramm haben wir uns f\u00fcr den MySQL-Datenbankdienst entschieden.<\/p>\n<p>Folge den offiziellen Anweisungen zum <a href=\"https:\/\/docs.sevalla.com\/databases\/get-started\/add-a-database\">Hinzuf\u00fcgen einer Datenbank<\/a> und vergiss nicht, das gleiche Rechenzentrum auszuw\u00e4hlen, das du f\u00fcr deine Flask-Anwendung gew\u00e4hlt hast.<\/p>\n<p>Nachdem du die Datenbank erstellt hast, w\u00e4hlst du sie aus der Liste deiner verf\u00fcgbaren DB-Server aus und scrollst auf der Registerkarte <strong>\u00dcbersicht<\/strong> zum Abschnitt <strong>Interne Verbindungen<\/strong> \/ <strong>Erlaubte Anwendungen<\/strong> herunter. Wenn du auf die Schaltfl\u00e4che <strong>Verbindung hinzuf\u00fcgen<\/strong> klickst, wird dein Flask-Anwendungsdienst im selben Rechenzentrum zur Auswahl stehen:<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-application-mykinsta-database-add-connection.png\" alt=\"Screenshot des Dialogs zum Hinzuf\u00fcgen einer internen Datenbankverbindung in MyKinsta.\" width=\"960\" height=\"466\"><figcaption class=\"wp-caption-text\">Hinzuf\u00fcgen einer internen Verbindung zu einer Anwendung nach dem Erstellen einer Datenbank<\/figcaption><\/figure>\n<p>Klicke auf das Kontrollk\u00e4stchen <strong>Umgebungsvariablen zur Anwendung hinzuf\u00fcgen<\/strong>, bevor du die neue Verbindung erstellst. Dadurch werden die Umgebungsvariablen angezeigt, die deine Datenbankgeheimnisse enthalten &#8211; und das alles auf sichere Weise, ohne dass die <strong>.env-Datei<\/strong> ben\u00f6tigt wird.<\/p>\n<figure style=\"width: 959px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-application-mykinsta-database-add-variables.png\" alt=\"Screenshot des Dialogs zum Hinzuf\u00fcgen von Umgebungsvariablen f\u00fcr Datenbankanmeldeinformationen.\" width=\"959\" height=\"854\"><figcaption class=\"wp-caption-text\">Hinzuf\u00fcgen von Umgebungsvariablen f\u00fcr eine interne Verbindung zu deiner Datenbank<\/figcaption><\/figure>\n<p>Unten im obigen Dialog sind die Einstellungen <strong>W\u00e4hrend der Laufzeit verf\u00fcgbar<\/strong> und<strong> W\u00e4hrend des Build-Prozesses verf\u00fcgbar<\/strong> standardm\u00e4\u00dfig aktiviert &#8211; und genau das willst du ja auch.<\/p>\n<p>Nachdem du auf die Schaltfl\u00e4che <strong>Verbindung hinzuf\u00fcgen<\/strong> geklickt hast, werden die Umgebungsvariablen, die f\u00fcr den Datenbankzugriff erforderlich sind, auf die <strong>Projekteinstellungen<\/strong> im MyKinsta-Dashboard <strong>Anwendungen<\/strong> angewendet:<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-application-mykinsta-environment-variables.png\" alt=\"Screenshot eines MyKinsta-Dialogs mit Umgebungsvariablen, die von der Datenbank an eine Anwendung \u00fcbergeben werden.\" width=\"960\" height=\"382\"><figcaption class=\"wp-caption-text\">Datenbank-Umgebungsvariablen, die an die Python-Flask-Anwendung \u00fcbergeben werden<\/figcaption><\/figure>\n<p>Auch wenn du deine Anwendung nach zuk\u00fcnftigen Erweiterungen neu erstellst, bleiben die Angaben zur Datenbankverbindung erhalten.<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-application-live-on-kinsta-platform.png\" alt=\"Screenshot of the Python Flask application live on the Kinsta platform.Screenshot der Python-Flask-Anwendung live auf der Kinsta-Plattform.\" width=\"960\" height=\"441\"><figcaption class=\"wp-caption-text\">Die Python-Flask-Anwendung l\u00e4uft auf der Kinsta-Plattform<\/figcaption><\/figure>\n<p>Herzlichen Gl\u00fcckwunsch! Du hast soeben eine Python-Flask-Anwendung erstellt und sie auf der Kinsta-Plattform bereitgestellt.<\/p>\n<h2>Zusammenfassung<\/h2>\n<p>Das anpassbare Framework von Flask macht die Erstellung einer Python-Anwendung deutlich einfacher. Die Nutzung von Kinsta zur Bereitstellung einer Flask-Anwendung macht alles noch einfacher und beschleunigt die Anwendungsentwicklung und -bereitstellung.<\/p>\n<p>Hier haben wir gelernt, wie man eine einfache datenbankgest\u00fctzte Anwendung in einer lokalen Entwicklungsumgebung erstellt und diese dann auf den <a href=\"https:\/\/kinsta.com\/docs\/application-hosting\">Webanwendungs-<\/a> und <a href=\"https:\/\/kinsta.com\/docs\/database-hosting\">Datenbank-Hosting-Plattformen<\/a> von Kinsta f\u00fcr den Rest der Welt bereitstellt.<\/p>\n<p>Entdecke, was du sonst noch auf unserer Plattform bauen kannst, indem du unsere <a href=\"https:\/\/docs.sevalla.com\/applications\/overviewapp-quick-start\">Schnellstartvorlagen<\/a> durchsuchst.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python ist eine der beliebtesten Entwicklungssprachen. Ihre einfache Syntax und die niedrigen Einstiegsh\u00fcrden machen sie zu einem guten Kandidaten f\u00fcr Programmieranf\u00e4nger, die sich einen Namen in &#8230;<\/p>\n","protected":false},"author":259,"featured_media":68331,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[974],"class_list":["post-68330","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Im Handumdrehen eine Python-Anwendung mit Flask und Kinsta erstellen und bereitstellen<\/title>\n<meta name=\"description\" content=\"Hier erf\u00e4hrst du wie du eine Python-Anwendung in Flask schnell mit Kinstas Anwendungs- und Datenbank-Hosting-Diensten bereitstellen k\u00f6nnen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mit Flask und Kinsta im Handumdrehen eine Python-Anwendung erstellen und bereitstellen\" \/>\n<meta property=\"og:description\" content=\"Hier erf\u00e4hrst du wie du eine Python-Anwendung in Flask schnell mit Kinstas Anwendungs- und Datenbank-Hosting-Diensten bereitstellen k\u00f6nnen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-16T17:26:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-24T12:11:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/01\/python-flask-app.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1999\" \/>\n\t<meta property=\"og:image:height\" content=\"1000\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Steve Bonisteel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Hier erf\u00e4hrst du wie du eine Python-Anwendung in Flask schnell mit Kinstas Anwendungs- und Datenbank-Hosting-Diensten bereitstellen k\u00f6nnen.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/01\/python-flask-app.png\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Steve Bonisteel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"12\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/\"},\"author\":{\"name\":\"Steve Bonisteel\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\"},\"headline\":\"Mit Flask und Kinsta im Handumdrehen eine Python-Anwendung erstellen und bereitstellen\",\"datePublished\":\"2024-01-16T17:26:13+00:00\",\"dateModified\":\"2024-01-24T12:11:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/\"},\"wordCount\":2099,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/01\/python-flask-app.png\",\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/\",\"name\":\"Im Handumdrehen eine Python-Anwendung mit Flask und Kinsta erstellen und bereitstellen\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/01\/python-flask-app.png\",\"datePublished\":\"2024-01-16T17:26:13+00:00\",\"dateModified\":\"2024-01-24T12:11:42+00:00\",\"description\":\"Hier erf\u00e4hrst du wie du eine Python-Anwendung in Flask schnell mit Kinstas Anwendungs- und Datenbank-Hosting-Diensten bereitstellen k\u00f6nnen.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/01\/python-flask-app.png\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/01\/python-flask-app.png\",\"width\":1999,\"height\":1000},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\/\/kinsta.com\/de\/thema\/python\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Mit Flask und Kinsta im Handumdrehen eine Python-Anwendung erstellen und bereitstellen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/de\/#website\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\",\"name\":\"Steve Bonisteel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g\",\"caption\":\"Steve Bonisteel\"},\"description\":\"Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/author\/stevebonisteel\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Im Handumdrehen eine Python-Anwendung mit Flask und Kinsta erstellen und bereitstellen","description":"Hier erf\u00e4hrst du wie du eine Python-Anwendung in Flask schnell mit Kinstas Anwendungs- und Datenbank-Hosting-Diensten bereitstellen k\u00f6nnen.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/","og_locale":"de_DE","og_type":"article","og_title":"Mit Flask und Kinsta im Handumdrehen eine Python-Anwendung erstellen und bereitstellen","og_description":"Hier erf\u00e4hrst du wie du eine Python-Anwendung in Flask schnell mit Kinstas Anwendungs- und Datenbank-Hosting-Diensten bereitstellen k\u00f6nnen.","og_url":"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2024-01-16T17:26:13+00:00","article_modified_time":"2024-01-24T12:11:42+00:00","og_image":[{"width":1999,"height":1000,"url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/01\/python-flask-app.png","type":"image\/png"}],"author":"Steve Bonisteel","twitter_card":"summary_large_image","twitter_description":"Hier erf\u00e4hrst du wie du eine Python-Anwendung in Flask schnell mit Kinstas Anwendungs- und Datenbank-Hosting-Diensten bereitstellen k\u00f6nnen.","twitter_image":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/01\/python-flask-app.png","twitter_creator":"@Kinsta_DE","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Steve Bonisteel","Gesch\u00e4tzte Lesezeit":"12\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/"},"author":{"name":"Steve Bonisteel","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f"},"headline":"Mit Flask und Kinsta im Handumdrehen eine Python-Anwendung erstellen und bereitstellen","datePublished":"2024-01-16T17:26:13+00:00","dateModified":"2024-01-24T12:11:42+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/"},"wordCount":2099,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/01\/python-flask-app.png","inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/","url":"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/","name":"Im Handumdrehen eine Python-Anwendung mit Flask und Kinsta erstellen und bereitstellen","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/01\/python-flask-app.png","datePublished":"2024-01-16T17:26:13+00:00","dateModified":"2024-01-24T12:11:42+00:00","description":"Hier erf\u00e4hrst du wie du eine Python-Anwendung in Flask schnell mit Kinstas Anwendungs- und Datenbank-Hosting-Diensten bereitstellen k\u00f6nnen.","breadcrumb":{"@id":"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#primaryimage","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/01\/python-flask-app.png","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/01\/python-flask-app.png","width":1999,"height":1000},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/de\/blog\/flask-python-anwendung\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"Python","item":"https:\/\/kinsta.com\/de\/thema\/python\/"},{"@type":"ListItem","position":3,"name":"Mit Flask und Kinsta im Handumdrehen eine Python-Anwendung erstellen und bereitstellen"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/de\/#website","url":"https:\/\/kinsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f","name":"Steve Bonisteel","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g","caption":"Steve Bonisteel"},"description":"Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.","url":"https:\/\/kinsta.com\/de\/blog\/author\/stevebonisteel\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/68330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/users\/259"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/comments?post=68330"}],"version-history":[{"count":6,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/68330\/revisions"}],"predecessor-version":[{"id":68426,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/68330\/revisions\/68426"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68330\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68330\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68330\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68330\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68330\/translations\/de"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68330\/translations\/es"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68330\/translations\/nl"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68330\/translations\/jp"},{"href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/68330\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media\/68331"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media?parent=68330"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/tags?post=68330"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/topic?post=68330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}