Flask¶
Flask to webowy mikroframework
do Pythona na licencji BSD. Na serwerach SMALL.PL możliwe jest uruchamianie stron opartych o ten framework dzięki zastosowaniu technologii Phusion Passenger.
Wstępna konfiguracja¶
Do uruchomienia strony napisanej we Flask należy najpierw zadbać o prawidłową konfigurację środowiska oraz domeny. Przed przystąpieniem do dalszych kroków należy upewnić się, że:
- Dodano środowisko virtualenv dla Python i zainstalowano Flask poleceniem:
pip install flask
- Domena jest prawidłowo dodana i skonfigurowana w naszym systemie DNS.
- Została dodana strona WWW typu Python oraz ścieżką do pliku binarnego
python
wewnątrz wcześniej skonfigurowanego środowiska.
Projekt Flask¶
Głównym katalogiem projektu Flask musi być katalog /usr/home/LOGIN/domains/DOMENA/public_python
. Należy również usunąć plik index.html
poleceniem: rm /usr/home/LOGIN/domains/DOMENA/public_python/public/index.html
Konfiguracja Phusion Passenger¶
Ostatnim krokiem jest utworzenie konfiguracji dla serwera Phusion Passenger, który jest odpowiedzialny za uruchomienie aplikacji Flask. Należy w katalogu projektu Flask (/usr/home/LOGIN/domains/DOMENA/public_python
) utworzyć plik passenger_wsgi.py
i umieścić w nim następującą zawartość, modyfikując linijkę importu:
import sys, os
sys.path.append(os.getcwd())
from aplikacja import app as application
Przykładowy plik aplikacja.py
(do umieszczenia w katalogu witryny w celu przetestowania działania Flask):
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
X-Accel-Buffering¶
By wyłączyć bufforowanie należy wysłać w nagłówku odpowiedzi nagłówek X-Accel-Buffering: no
- przykładowo korzystając z stream_with_context()
:
resp = Response(stream_with_context(PARAMETRY))
resp.headers['X-Accel-Buffering'] = 'no'