Flask installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
Zeile 75: Zeile 75:
Dies ist der empfohlene Weg, wie Python Anwendungen bei Hostsharing betrieben werden können:
Dies ist der empfohlene Weg, wie Python Anwendungen bei Hostsharing betrieben werden können:


Im Domain-Verzeichnis <code>~/doms/example.com/</code> wird eine Datei <code>.htaccess</code> mit der Passenger-Konfiguration abgelegt:
Den Pfad zum Python-Binärprogramm konfiguriert man in den Eigenschaften der Domain in HSAdmin, unter PassengerPython: z.B. <code>/home/pacs/xyz00/users/example/myproject/.venv/bin/python3</code>
 
<syntaxhighlight lang=apache line>
PassengerFriendlyErrorPages off
PassengerPython /home/pacs/xyz00/users/benutzer/myproject/.venv/bin/python
SetEnv PYTHONPATH /home/pacs/xyz00/users/benutzer/myproject
</syntaxhighlight>


Die Verzeichnisse "subs/www" und "subs-ssl/www" werden gelöscht.  
Die Verzeichnisse "subs/www" und "subs-ssl/www" werden gelöscht.  

Version vom 3. August 2024, 04:19 Uhr

Allgemeines

Flask (https://flask.palletsprojects.com/) ist ein minimales Python Framework. Es ist eine leichtgewichtige Alternative zu Django, 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:

Den Pfad zum Python-Binärprogramm konfiguriert man in den Eigenschaften der Domain in HSAdmin, unter PassengerPython: z.B. /home/pacs/xyz00/users/example/myproject/.venv/bin/python3

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.

Links