Flask Webanwendung Deployment

Django, Flask, Bottle, WSGI, CGI…
Antworten
Aramis
User
Beiträge: 17
Registriert: Dienstag 29. Mai 2018, 09:41

Hallo zusammen,

ich möchte gern meine in Flask entwickelte Webanwendung online schalten. Die Seite ist auf allinkl.de gehostet. Leider kann mir der Support hier nicht weiterhelfen. Hat jemand bereits Erfahrungen? Ich würde so vorgehen:
  • über SSH eine virtuelle Umgebung anlegen
  • die notwendigen Pakete über pip install laden
Was wäre nun der nächste Schritt, dass ich die Flask App ans laufen bekomme?

Danke und bleibt gesund!

Aramis
pyuser80
User
Beiträge: 1
Registriert: Sonntag 13. Januar 2019, 15:54

Wie man eine Flask Anwendung zum Deployment bringt ist in der Flaskdoku beschrieben.
Benutzeravatar
noisefloor
User
Beiträge: 4231
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

der gängige Weg wäre, die Flask App über eine WSGI-Server wie gunicorn auf localhost ausliefern und nginx oder Apache als Reverse Proxy davor. Ob das deine Webspace / Server hergibt -> keine Ahnung, muss du halt prüfen.

Gruß, noisefloor
Aramis
User
Beiträge: 17
Registriert: Dienstag 29. Mai 2018, 09:41

Mittlerweile hab ich es gelöst und für alle die ebenfalls eine Flask Anwendung bei diesem Provider deployen wollen nachfolgend mein Vorgehen:

im Verzeichnis: /www/htdocs/w012345/XXX muss folgendes hinterlegt sein:
  • VirtualEnv
  • .htaccess
  • cgi-Skript
  • run.py

Folgende Ergänzungen in der .htaccess vornehmen:

Code: Alles auswählen

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /path/to/XXX/app.cgi/$1 [L]
AddHandler cgi-script .cgi
Options +ExecCGI
app.cgi

Code: Alles auswählen

#!/bin/bash

source /path/to/XXX/venv/bin/activate
/path/to/my/XXX/venv/bin/python3 /path/to/XXX/run.py
run.py

Code: Alles auswählen

#!/usr/bin/env python
from wsgiref.handlers import CGIHandler
from flaskapp import create_app

app = create_app()
CGIHandler().run(app)

Ich hoffe es hilft.

Viele Grüße, Aramis
christophs83
User
Beiträge: 1
Registriert: Sonntag 26. Oktober 2025, 12:08

Hi Aramis, vielen Dank für Deine Anleitung!
Habe gerade ein Problem und denke, es ist vielleicht ähnlich gelagert wie deins, weiß aber gerade nicht, wie ich deine Lösung dahin transferiert bekomme. ich liefere eine flaskapp über gunicorn aus und kann sie über curl lokal auf 127.0.0.1:8000 auch abrufen. über Domain> Bearbeiten im KAS(technische Verwaltung) kann ich so wie es aussieht nur ein Stammverzeichnis angeben, über Gunicorn hab ich aber gar nicht so ein Verzeichnis. Ich dachte daran nginx oder apache als reverse proxy vorzuschalten, für die Installation und Einrichtung dieser scheinen aber Berechtigungen zu fehlen.
Entgegen Deiner Beschreibung hat es bei mir zudem im im Verzeichnis: /www/htdocs/w012345/XXX die Dateien nicht hinterlegt...
VirtualEnv
.htaccess
cgi-Skript
run.py

Wäre super nett wenn mir jemand weiterhelfen könnte... Danke und Grüße,
Christoph
Benutzeravatar
noisefloor
User
Beiträge: 4231
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

CGI unter Python ist eigentlich tot und das CGI Modul ist aus Python 3.13 und neuer entfernt worden. Den wsgiref CGI handler gibt es noch, d.h. das könnte noch funktionieren.

Aber du müsstest mal ein bisschen mehr Kontext liefern... Kannst du auf dem System Python und alle notwendigen Module installieren? Kannst du mit Nutzerrechten einen WSGI Applikationsserver wie Gunicorn mit Nutzerrechten starten und ggf. auch auf der IP Adresse des entsprechenden Rechner lauschen lassen?

Gruß, noisefloor
Antworten