Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Gartenautomation
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Deutsch
  • English
Menu

Python Flask #1: Was ist Flask?

Posted on 26. Februar 20213. Mai 2023 by Stefan Draeger

In meiner neuen Beitragsserie auf diesem Blog, möchte ich dir das Web Framework Flask für Python vorstellen.

Bevor wir jedoch die ersten Programme schreiben, möchte ich dir kurz erläutern was Flask ist und was du für die Programmierung benötigst. Nachdem diese Frage klärt wurde zeige ich dir ein kleines Programm mit der Ausgabe „Hello World!“ im Browser.

  • Was ist Flask?
  • Was benötige ich für die Programmierung?
    • Wie starte ich eine Flask App?
    • Was benötige ich für das deployment meiner Flask App?
  • Programmieren einer Flask App
    • Einbinden des Frameworks
      • Proxy
  • deinstallieren von Abhängigkeiten
  • Programm „Hello World!“ mit Flask
    • Was passiert hier genau?
    • starten der Flask APP
      • Eclipse IDE & Kommandozeile
        • Apache Ant build.xml
        • Download des Eclipse Projektes
  • Fazit & Ausblick

Was ist Flask?

Flask ist wohl das bekannteste und kostenfreie Web Framework für Python.
Du kannst mit Flask dynamische (und natürlich statische) Webseiten / Anwendungen schreiben welche im Browser ablaufen.

Was benötige ich für die Programmierung?

Für die Programmierung benötigst du eine Entwicklungsumgebung wie Eclipse, PyCharm oder ähnlichem.
Natürlich kannst du eine Flask App auch in einem einfachen Editor wie Notepad++ oder PSPad schreiben aber das wäre nicht so komfortable denn zum testen deiner App benötigst du die Möglichkeit einen kleinen integrierten Server zu starten und das müsstest du dann über die Kommandozeile machen.

Und du brauchst natürlich das Flask Modul welches du installieren musst. Aber dazu kommen wir etwas später in einem separaten Beitrag.

Wie starte ich eine Flask App?

Eine Flask App wird in einem integrierten Server gestartet. Daher empfehle ich dir die Entwicklungsumgebung PyCharm diese bietet einige nützliche Features zum Entwickeln und nimmt dir einige Arbeit ab so das du dich auf dein Programm konzentrieren kannst.

Was benötige ich für das deployment meiner Flask App?

Für das deployment einer Flask App auf einem „echten“ Server benötigst du einen Flask fähigen Server, diese kosten etwas mehr als die normalen HTTP / PHP Server wie du diese für ein CMS kennst.

Du kannst natürlich auch deine Flask App auf einem Raspberry PI deployen und mit DynDNS ins Internet einbinden. Hier musst du jedoch einige Sicherheitsvorkehrungen treffen damit dein kleiner, eigener Server sicher vor angriffen ist.

Programmieren einer Flask App

Einbinden des Frameworks

Damit wir eine Flask App schreiben können benötigen wir wie bereits erwähnt das Modul Flask (und ggf. noch weitere nützliche Module).

Unsere Abhängigkeiten im Python Projekt können wir in einer Textdatei „requirements.txt“ zusammenfassen und mit dem Installer von Python laden. Der Aufbau dieser Datei ist wie folgt:

Modul==Version

Für unser nachfolgendes „Hello World!“ würde diese Datei wie folgt aussehen:

Flask==1.1.2 
Jinja2==2.10.1
requests==0.11.1

Um diese Abhängigkeiten nun zu installieren müssen wir auf der Kommandozeile den Befehl:

pip install -r requierements.txt

eingeben. Es wird nun eine Verbindung aufgebaut und die Module installiert.

Installieren von Flask als Abhängigkeit
Installieren von Flask als Abhängigkeit

Proxy

Solltest du dich hinter einem Proxy befinden so musst du zusätzlich den Parameter „–proxy“ anhängen.

pip install -r requierements.txt --proxy=http://127.0.0.1:6790

Unter bestimmten Vorraussetzungen musst du dich ggf. an diesem Proxy anmelden. Du kannst dem Parameter Proxy noch zusätzlich deine Anmeldedaten mitgeben.

pip install -r requierements.txt --proxy=http://maxmustermann:passwort@127.0.0.1:6790

deinstallieren von Abhängigkeiten

Der Vollständigkeit halber möchte ich dir auch zeigen wie du diese Abhängigkeiten auch wieder deinstallieren kannst.

Der Befehl auf der Konsole lautet dazu:

pip uninstall -r requierements.txt

Du wirst nun zu jedem in der Datei „requirements.txt“ aufgeführten und im System gefundenen Modul gefragt ob du dieses wirklich deinstallieren möchtest.

deinstallieren von Modulen mit pip
deinstallieren von Modulen mit pip

Programm „Hello World!“ mit Flask

Ein erstes kleines „Hello World!“ kannst du mit Flask und Python in 5 Zeilen schreiben.

from flask import Flask

app = Flask(__name__)


@app.route('/')
def start():
    return "Hello World!"

Was passiert hier genau?

Schauen wir uns nun das „Hello World!“ Programm genauer an.

Zeile 1 – importieren von Flask

Damit wir die Funktionen von Flask verwenden können müssen wir natürlich das Modul importierten.

Zeile 2 – definieren des Namens für die Flask App

Damit der Server weiß wo er die Resourcen laden kann müssen wir das Modul benennen, welches wir starten.

Zeile 3 & 4 – Umleiten des Request vom Browser an eine Funktion

In unserem Fall reagieren wir auf das Root Verzeichnis der Adresse und starten dann die Funktion dahinter. D.h. im Detail ruft der Besucher die Adresse http://localhost:5000 auf und die Funktion „start()“ wird ausgeführt.

Wir können dieses Mapping auf beliebig viele Funktionen ausweiten:

@app.route('/impressum') 
def impressum(): 
   return "Seite Impressum"

@app.route('/kontakt') 
def kontakt(): 
   return "Seite Kontakt"

@app.route('/hallo') 
def hierStehtEinText123(): 
   return "Seite Impressum"

Dabei kann die Funktion einen beliebigen Namen haben.

Zeile 5 – Ausgeben der Zeichenkette „Hello World!“

In unserem kleinen „Hello World!“ Beispiel geben wir lediglich eine Zeichenkette aus. In weiteren Beiträgen zu Python & Flask zeige ich dir wie du Parameter übergeben und damit zbsp. rechnen kannst.

starten der Flask APP

Um nun die Flask App zu starten müssen wir dazu den integrierten Flask Server bedienen.

Eclipse IDE & Kommandozeile

Die Eclipse IDE mit dem Plugin PyDev ist schon recht mächtig aber leider nicht besonders gut geeignet zum Entwickeln von Flask Apps. Um eine einfache Flask App zu starten empfehle ich dir den weg über die Kommandozeile.

C:\ide\workspaces\python\HelloFlask>set FLASK_APP=Main.py

C:\ide\workspaces\python\HelloFlask>flask run
 * Serving Flask app "Main.py"
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Schritt 1 – definieren der Flask App als Umgebungsvariable

Zunächst definieren wir eine neue Umgebungsvariable mit dem Kommandozeilenbefehl „set“ und dem Key „FLASK_APP“ der Wert ist in unserem Fall die Python Datei welche unsere App darstellt „Main.py“.

set FLASK_APP=Main.py

Schritt 2 – starten des Flask Servers

Im zweiten und letzten Schritt starten wir den Flask Server mit dem Befehl „flask run“.

flask run

Du kannst nun erkennen das der Server gestartet wurde in dem du die Adresse http://localhost:5000 oder http://127.0.0.1:5000 im Browser eingibst.

Flask - "Hello World!" im Browser
Flask – „Hello World!“ im Browser
Apache Ant build.xml

Ein klein wenig bequemer geht es in Eclipse mit folgendem Ant Skript:

<?xml version="1.0" ?>
<project basedir="." default="run">
    <target name="run">
        <echo>run Flask App from Apache Ant</echo>
        
        <input message="Please enter Flask App Modul:" addproperty="flask.appname"/>
        
        <property name="FLASK_APP" value="${basedir}\${flask.appname}"/>
        
        <exec executable="C:\python37\Scripts\flask">
            <env key="FLASK_APP" value="${FLASK_APP}"/>
    		<arg value="run"/>
  		</exec>
    </target>
</project>

Dieses Skript zeigt bei ausführen ein Dialog an, in welchem man das Modul für die Umgebungsvariable „FLASK_APP“ eingibt.

Ant Skript für Flask
Ant Skript für Flask

Nachdem diese Umgebungsvariable gesetzt wurde, wird dann der Flask Server gestartet.

Buildfile: C:\ide\workspaces\python\HelloFlask\build.xml
run:
     [echo] run Flask App from Apache Ant
     [exec]  * Serving Flask app "C:\ide\workspaces\python\HelloFlask\Main.py"
     [exec]  * Environment: production
     [exec]    WARNING: This is a development server. Do not use it in a production deployment.
     [exec]    Use a production WSGI server instead.
     [exec]  * Debug mode: off
     [exec]  * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Zum beenden des Ant Skriptes wird in der Entwicklungsumgebung Eclipse das Stop Symbol betätigt. Jedoch verbleibt der Task „flask.exe“ im Taskmanager welcher ggf. per Hand beendet werden muss.

Es empfiehlt sich das Skript auf der Konsole auszuführen!

Download des Eclipse Projektes

Hier nun das komplette PyDev Eclipse Projekt inkl. Ant Build Skript.

Python Flask – Eclipse Projekt „Hello World!“Herunterladen

Fazit & Ausblick

In diesem Beitrag sollte es zunächst darüber gehen wie du ein einfaches kleines Programm mit Flask schreibst und es starten kannst.

Als nächstes möchte ich nun deutlich tiefer in diese Materie eintauchen und zeigen wie du dynamische Webinhalte programmierst. Dafür werde ich jedoch die Entwicklungsumgebung von Eclipse auf PyCharm wechseln da diese deutliche Vorteile hat.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}