Skip to content

Instantly share code, notes, and snippets.



Forked from rduplain/
Last active Nov 2, 2017
What would you like to do?

This demonstrates that you can configure a Flask application through Flask-Script, without having to create a Flask instance or deal with circular dependencies. Note that Flask-Script's Manager accepts a factory function in place of a Flask app object.


python runserver

gives "Hello, world!" on http://localhost:5000/, while running:

python -c development.cfg runserver

gives "Hello, developer!".

import os
from flask import Flask
def create_app(config=None):
app = Flask(__name__)
if config is None:
config = os.path.join(app.root_path, 'production.cfg')
def index():
return 'Hello, %(name)s!' % {'name': app.config['HELLO']}
return app
HELLO = 'developer'
from flask.ext.script import Manager
from app import create_app
manager = Manager(create_app)
manager.add_option('-c', '--config', dest='config', required=False)
if __name__ == '__main__':
HELLO = 'world'

This comment has been minimized.

Copy link

@frankV frankV commented Aug 1, 2014

I copied this into my project but can not seem to actually pass a value into create_app.

I tried printing the value of whats passed to -c and it returns None

Has this changed?


This comment has been minimized.

Copy link

@dorneanu dorneanu commented Oct 13, 2014

I don't get it. How can I access app inside my functions?


This comment has been minimized.

Copy link

@thecrackofdawn thecrackofdawn commented Mar 8, 2016

well, after is called the will be replaced with flask app instance returned by create_app. So you can access app with

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.