Auto reloading python Flask app upon code changes

I'm investigating how to develop a decent web app with Python. Since I don't want some high-order structures to get in my way, my choice fell on the lightweight Flask framework. Time will tell if this was the right choice.

So, now I've set up an Apache server with mod_wsgi, and my test site is running fine. However, I'd like to speed up the development routine by making the site automatically reload upon any changes in py or template files I make. I see that any changes in site's .wsgi file causes reloading (even without WSGIScriptReloading On in the apache config file), but I still have to prod it manually (ie, insert extra linebreak, save). Is there some way how to cause reload when I edit some of the app's py files? Or, I am expected to use IDE that refreshes the .wsgi file for me?

The current recommended way (Flask >= 0.11) is with the flask command line utility.

http://flask.pocoo.org/docs/0.11/server/

Example:

    $ export FLASK_APP=main.py
    $ export FLASK_DEBUG=1
    $ python -m flask run

or in one command:

    $ FLASK_APP=main.py FLASK_DEBUG=1 python -m flask run

I prefer python -m flask run rather than flask run because the former also works with virtualenv.

If you want different port than the default (5000) add --port option.

Example:

    $ python -m flask run --port 8080

More options are available with:

    $ python -m flask run --help

From: stackoverflow.com/q/16344756