Kapitel 1. Installation

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Flask ist nach den meisten Maßstäben ein kleines Framework - klein genug, um als "Mikro-Framework" bezeichnet zu werden, und klein genug, dass du, wenn du dich einmal mit ihm vertraut gemacht hast, wahrscheinlich den gesamten Quellcode lesen und verstehen kannst.

Dass es klein ist, bedeutet aber nicht, dass es weniger kann als andere Frameworks. Flask wurde von Anfang an als erweiterbares Framework konzipiert; es bietet einen soliden Kern mit den grundlegenden Diensten, während Erweiterungen den Rest übernehmen. Weil du dir die Erweiterungspakete aussuchen kannst, hast du am Ende einen schlanken Stack, der nicht überladen ist und genau das tut, was du brauchst.

Flask hat drei Hauptabhängigkeiten. Die Subsysteme für Routing, Debugging und Web Server Gateway Interface (WSGI) stammen von Werkzeug, die Template-Unterstützung wird von Jinja2 bereitgestellt und die Kommandozeilenintegration kommt von Click. Diese Abhängigkeiten stammen alle von Armin Ronacher, dem Autor von Flask.

Flask bietet keine native Unterstützung für den Zugriff auf Datenbanken, die Validierung von Webformularen, die Authentifizierung von Benutzern oder andere anspruchsvolle Aufgaben. Diese und viele andere wichtige Dienste, die die meisten Webanwendungen benötigen, sind über Erweiterungen verfügbar, die in die Kernpakete integriert werden. Als Entwickler hast du die Möglichkeit, die Erweiterungen auszuwählen, die für dein Projekt am besten geeignet sind, oder sogar deine eigenen zu schreiben, wenn du Lust dazu hast. Dies steht im Gegensatz zu einem größeren Framework, bei dem die meisten Entscheidungen für dich getroffen wurden und nur schwer oder gar nicht geändert werden können.

In diesem Kapitel lernst du, wie du Flask installierst. Die einzige Voraussetzung ist ein Computer, auf dem Python installiert ist.

Hinweis

Die Codebeispiele in diesem Buch wurden für Python 3.5 und 3.6 geprüft. Python 2.7 kann auch verwendet werden, aber da diese Version von Python nach dem Jahr 2020 nicht mehr weiterentwickelt wird, wird dringend empfohlen, die 3.x Versionen zu verwenden.

Hinweis

Wenn du einen Microsoft Windows-Computer für die Arbeit mit dem Beispielcode verwenden willst, musst du dich entscheiden, ob du einen "nativen" Ansatz mit Windows-Tools verwenden oder deinen Computer so einrichten willst, dass du die gängigeren Unix-basierten Tools nutzen kannst. Der in diesem Buch vorgestellte Code ist weitgehend mit beiden Ansätzen kompatibel. In den wenigen Fällen, in denen sich die Ansätze unterscheiden, wird die Unix-Lösung verfolgt, und es werden Alternativen für Windows angegeben.

Wenn du dich für einen Unix-Workflow entscheidest, hast du mehrere Möglichkeiten. Wenn du Windows 10 verwendest, kannst du das Windows Subsystem für Linux (WSL) aktivieren. Dabei handelt es sich um eine offiziell unterstützte Funktion, die eine Ubuntu-Linux-Installation erstellt, die neben der nativen Windows-Oberfläche läuft und dir Zugriff auf eine Bash-Shell und alle Unix-basierten Tools bietet. Wenn WSL auf deinem System nicht verfügbar ist, ist Cygwin eine weitere gute Option. Cygwin ist ein Open-Source-Projekt, das das POSIX-Subsystem von Unix emuliert und eine Vielzahl von Unix-Tools portiert.

Erstellen des Anwendungsverzeichnisses

Zunächst musst du das Verzeichnis erstellen, in dem sich der Beispielcode befindet, der in einem GitHub-Repository verfügbar ist. Wie im Abschnitt "So arbeitest du mit dem Beispielcode" beschrieben , ist es am bequemsten, wenn du den Code mit einem Git-Client direkt von GitHub auscheckst. Mit den folgenden Befehlen lädst du den Beispielcode von GitHub herunter und initialisierst die Anwendung auf die Version 1a, mit der du zunächst arbeiten wirst:

$ git clone https://github.com/miguelgrinberg/flasky.git
$ cd flasky
$ git checkout 1a

Wenn du es vorziehst, Git nicht zu verwenden und stattdessen den Code manuell einzugeben oder zu kopieren, kannst du einfach ein leeres Anwendungsverzeichnis wie folgt erstellen:

$ mkdir flasky
$ cd flasky

Virtuelle Umgebungen

Nachdem du nun das Anwendungsverzeichnis erstellt hast, ist es an der Zeit, Flask zu installieren. Die bequemste Art, dies zu tun, ist die Verwendung einer virtuellen Umgebung. Eine virtuelle Umgebung ist eine Kopie des Python-Interpreters, in die du privat Pakete installieren kannst, ohne den globalen Python-Interpreter in deinem System zu beeinflussen.

Virtuelle Umgebungen sind sehr nützlich, weil sie ein Durcheinander an Paketen und Versionskonflikte im Python-Interpreter des Systems verhindern. Durch die Erstellung einer virtuellen Umgebung für jedes Projekt wird sichergestellt, dass Anwendungen nur auf die Pakete zugreifen können, die sie verwenden, während der globale Interpreter ordentlich und sauber bleibt und nur als Quelle dient, aus der weitere virtuelle Umgebungen erstellt werden können. Ein zusätzlicher Vorteil ist, dass virtuelle Umgebungen - anders als der systemweite Python-Interpreter - ohne Administratorrechte erstellt und verwaltet werden können.

Erstellen einer virtuellen Umgebung mit Python 3

Die Erstellung von virtuellen Umgebungen ist ein Bereich, in dem sich Python 3 und Python 2 Interpreter unterscheiden. In Python 3 werden virtuelle Umgebungen nativ durch das Paket venv unterstützt, das Teil der Python-Standardbibliothek ist.

Hinweis

Wenn du den Standardinterpreter von Python 3 auf einem Ubuntu-Linux-System verwendest, ist das Standardpaket venv nicht standardmäßig installiert. Um es zu deinem System hinzuzufügen, installiere das Paket python3-venv wie folgt:

$ sudo apt-get install python3-venv

Der Befehl, der eine virtuelle Umgebung erstellt, hat die folgende Struktur:

$ python3 -m venv virtual-environment-name

Mit der Option -m venv wird das Paket venv aus der Standardbibliothek als eigenständiges Skript ausgeführt, wobei der gewünschte Name als Argument übergeben wird.

Du wirst nun eine virtuelle Umgebung im flasky-Verzeichnis erstellen. Üblicherweise werden virtuelle Umgebungen venv genannt, aber du kannst auch einen anderen Namen verwenden, wenn du möchtest. Vergewissere dich, dass dein aktuelles Verzeichnis auf flasky eingestellt ist, und führe dann diesen Befehl aus:

$ python3 -m venv venv

Nach Beendigung des Befehls hast du ein Unterverzeichnis mit dem Namen venv innerhalb von flasky mit einer brandneuen virtuellen Umgebung, die einen Python-Interpreter für die ausschließliche Verwendung durch dieses Projekt enthält.

Erstellen einer virtuellen Umgebung mit Python 2

Python 2 hat kein venv Paket. In dieser Version des Python-Interpreters werden virtuelle Umgebungen mit dem Drittanbieter-Dienstprogramm virtualenv erstellt.

Vergewissere dich, dass dein aktuelles Verzeichnis auf flasky eingestellt ist, und verwende dann je nach Betriebssystem einen der beiden folgenden Befehle. Wenn du Linux oder macOS verwendest, lautet der Befehl:

$ sudo pip install virtualenv

Wenn du Microsoft Windows verwendest, stelle sicher, dass du eine Eingabeaufforderung mit der Option "Als Administrator ausführen" öffnest, und führe dann diesen Befehl aus:

$ pip install virtualenv

Der Befehl virtualenv benötigt den Namen der virtuellen Umgebung als Argument. Vergewissere dich, dass dein aktuelles Verzeichnis auf flasky eingestellt ist, und führe dann den folgenden Befehl aus, um eine virtuelle Umgebung namens venv zu erstellen:

$ virtualenv venv
New python executable in venv/bin/python2.7
Also creating executable in venv/bin/python
Installing setuptools, pip, wheel...done.

Im aktuellen Verzeichnis wird ein Unterverzeichnis mit dem Namen venv erstellt, in dem sich alle mit der virtuellen Umgebung verbundenen Dateien befinden.

Arbeiten mit einer virtuellen Umgebung

Wenn du eine virtuelle Umgebung nutzen willst, musst du sie "aktivieren". Wenn du einen Linux- oder macOS-Computer verwendest, kannst du die virtuelle Umgebung mit diesem Befehl aktivieren:

$ source venv/bin/activate

Wenn du Microsoft Windows verwendest, lautet der Aktivierungsbefehl:

$ venv\Scripts\activate

Wenn eine virtuelle Umgebung aktiviert wird, wird der Speicherort ihres Python-Interpreters der Umgebungsvariablen PATH in deiner aktuellen Befehlssitzung hinzugefügt, die bestimmt, wo nach ausführbaren Dateien gesucht werden soll. Um dich daran zu erinnern, dass du eine virtuelle Umgebung aktiviert hast, ändert der Aktivierungsbefehl deine Eingabeaufforderung so, dass sie den Namen der Umgebung enthält:

(venv) $

Nachdem eine virtuelle Umgebung aktiviert wurde, wird durch die Eingabe von python in der Eingabeaufforderung der Interpreter der virtuellen Umgebung anstelle des systemweiten Interpreters aufgerufen. Wenn du mehr als ein Eingabeaufforderungsfenster verwendest, musst du die virtuelle Umgebung in jedem von ihnen aktivieren.

Hinweis

Obwohl die Aktivierung einer virtuellen Umgebung normalerweise die bequemste Option ist, kannst du eine virtuelle Umgebung auch nutzen, ohne sie zu aktivieren. Du kannst zum Beispiel eine Python-Konsole für die virtuelle Umgebung venv starten, indem du venv/bin/python unter Linux oder macOS oder venv\Scripts\python unter Microsoft Windows ausführst.

Wenn du die Arbeit mit der virtuellen Umgebung beendet hast, gibst du deactivate an der Eingabeaufforderung ein, um die Umgebungsvariable PATH für deine Terminalsitzung und die Eingabeaufforderung wieder in ihren ursprünglichen Zustand zu versetzen.

Installation von Python-Paketen mit pip

Python-Pakete werden mit dem Paketmanager pip installiert, der in allen virtuellen Umgebungen enthalten ist. Wie der Befehl python ruft auch die Eingabe von pip in einer Eingabeaufforderung die Version dieses Tools auf, die zu der aktivierten virtuellen Umgebung gehört.

Um Flask in der virtuellen Umgebung zu installieren, stelle sicher, dass die virtuelle Umgebung venv aktiviert ist, und führe dann den folgenden Befehl aus:

(venv) $ pip install flask

Wenn du diesen Befehl ausführst, installiert pip nicht nur Flask, sondern auch alle seine Abhängigkeiten. Du kannst jederzeit mit dem Befehl pip freeze überprüfen, welche Pakete in der virtuellen Umgebung installiert sind:

(venv) $ pip freeze
click==6.7
Flask==0.12.2
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
Werkzeug==0.12.2

Die Ausgabe von pip freeze enthält detaillierte Versionsnummern für jedes installierte Paket. Die Versionsnummern, die du erhältst, werden sich wahrscheinlich von den hier gezeigten unterscheiden.

Du kannst auch überprüfen, ob Flask korrekt installiert wurde, indem du den Python-Interpreter startest und versuchst, es zu importieren:

(venv) $ python
>>> import flask
>>>

Wenn keine Fehler auftreten, kannst du dich freuen: Du bist bereit für das nächste Kapitel, in dem du deine erste Webanwendung schreiben wirst.

Get Flask Web Development, 2. Auflage now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.