Skip to content

Flask

Flask is a web microframework for Python under the BSD license. On Serv00.com servers it is possible to run websites based on this framework thanks to the Phusion Passenger technology.

Initial setup

To run a website written in Flask you must first ensure the correct configuration of the environment and domain. Before proceeding with the next steps, make sure that:

  • Added virtualenv for Python environment and installed Flask with: pip install flask
  • The domain is properly added and configured in our DNS.
  • Added Python website and the path to the python binary inside the previously configured environment.

Project Flask

The root directory of the Flask project must be /usr/home/LOGIN/domains/DOMAIN/public_python. You should also delete the index.html file with the command: rm /usr/home/LOGIN/domains/DOMAIN/public_python/public/index.html

Configuration of Phusion Passenger

The last step is to create a configuration for the Phusion Passenger server, which is responsible for running the Flask application. In the Flask project directory (/usr/home/LOGIN/domains/DOMAIN/public_python) create a file passenger_wsgi.py and place the following content in it, modifying the import line:

import sys, os
sys.path.append(os.getcwd())
from application import app as application

An example application.py file (to be placed in the website directory to test Flask):

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

X-Accel-Buffering

To disable buffering, send the X-Accel-Buffering: no header in the response header - for example, using stream_with_context():

resp = Response(stream_with_context(PARAMETERS))
    resp.headers['X-Accel-Buffering'] = 'no'

Flask