Flask installieren
Allgemeines
Flask (https://flask.palletsprojects.com/) ist ein minimales Python Framework. Es ist eine leichtgewichtige Alternative zu Django Installation, welches doch sehr mächtig ist.
Es wurde im April 2010 unter einer BSD-Lizenz veröffentlicht.
Installation
Diese Installation liegt auch als Ansible Skript vor, und kann automatisiert durchgeführt werden.
Hier wird die manuelle Installation beschrieben:
Die Bibliotheken von Flask werden in einer Virtualenv-Umgebung installiert.
Zunächst wird die Virtualenv-Umgebung erstellt:
$ mkdir myproject $ cd myproject $ echo "export PIPENV_VENV_IN_PROJECT=1" >> ~/.profile $ chmod a+x ~/.profile $ source ~/.profile $ pipenv install
Dann werden die Flask-Bibliotheken in die eben erstellte Virtualenvumgebung installiert.
$ cd ~/myproject $ pipenv install flask
Testen, ob Flask installiert ist:
$ cd ~/myproject $ pipenv run python -m flask --version Python 3.7.3 Flask 2.2.2 Werkzeug 2.2.2
Die eigentliche Anwendung anlegen
Es soll die Datei myproject.py
im Verzeichnis myproject
angelegt werden, mit folgendem Inhalt:
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "<h1 style='color:blue'>Hello World!</h1>" if __name__ == "__main__": app.run(host='0.0.0.0')
Die Anwendung kann testweise gestartet werden:
$ cd ~/myproject $ pipenv run python myproject.py * Serving Flask app 'myproject' * Debug mode: off WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on all addresses (0.0.0.0) * Running on http://127.0.0.1:5000 * Running on http://83.223.abc.xyz:5000 Press CTRL+C to quit
Die Anwendung ist nun unter der angegebenen IP Adresse auf Port 5000 erreichbar, und lässt sich damit auch einfach debuggen.
Das sollte aber nicht für den Dauerbetrieb sein, daher Strg-C drücken, um abzubrechen.
Nutzung mit Passenger und WSGI
Dies ist der empfohlene Weg, wie Python Anwendungen bei Hostsharing betrieben werden können:
Im Domain-Verzeichnis ~/doms/example.com/
wird eine Datei .htaccess
mit der Passenger-Konfiguration abgelegt:
PassengerFriendlyErrorPages off PassengerPython /home/pacs/xyz00/users/benutzer/myproject/.venv/bin/python SetEnv PYTHONPATH /home/pacs/xyz00/users/benutzer/myproject
Die Verzeichnisse "subs/www" und "subs-ssl/www" werden gelöscht. Die Datei .htaccess im Verzeichnis "htdocs-ssl" wird ebenfalls gelöscht.
In "app-ssl" wird eine Datei "passenger_wsgi.py" mit folgendem Inhalt abgelegt:
from myproject import app as application
Das Projekt ist nun unter https://example.com erreichbar.