Examples
Basic Flask Example
app/__init__.py:
from ordbok.flask_helper import FlaskOrdbok
ordbok = FlaskOrdbok()
def create_app():
app = Flask(__name__)
ordbok.init_app(app)
ordbok.load()
app.config.update(ordbok)
return app
if __name__ == "__main__":
app = create_app()
ordbok.app_run(app)
app/config/config.yml:
COMMON: &common
SECRET_KEY: 'keep out!'
DEBUG: False
DEVELOPMENT: &development
<<: *common
DEBUG: True
SQLALCHEMY_DATABASE_URL: 'ordbok_local_config'
PRODUCTION:
<<: *common
SECRET_KEY: 'ordbok_env_config'
SQLALCHEMY_DATABASE_URL: 'postgres://user:password@localhost:5432/database'
app/config/local_config.yml:
SQLALCHEMY_DATABASE_URL: 'sqlite:///tmp/database.db'
SQLALCHEMY_ECHO: True
ran with python app/__init__.py will run a Flask app with the following configuration*:
{ENVIRONMENT: 'development',
SECRET_KEY: 'keep out!',
DEBUG: True,
SQLALCHEMY_DATABASE_URL: 'sqlite:///tmp/database.db',
SQLALCHEMY_ECHO: True}
and ran with (in bash):
export ORDBOK_ENVIRONMENT=PRODUCTION
export ORDBOK_SECRET_KEY=7a1fa63d-f33a-11e3-aab5-b88d12179d58
python app/__init__.py
will run a Flask app with the following configuration*:
{ENVIRONMENT: 'production',
SECRET_KEY: '7a1fa63d-f33a-11e3-aab5-b88d12179d58',
DEBUG: False,
SQLALCHEMY_DATABASE_URL: 'postgres://user:password@localhost:5432/database'}
*Note: These are not complete configurations; Flask adds a set of defaults on it's own. These only represent the values set from the config files and the environment.
By setting SQLALCHEMY_DATABASE_URL: 'ordbok_local_config' and SECRET_KEY: 'ordbok_env' in our config/config.yml file, we would raise an exception if those values were not found in config/local_config.yml and the environment, respectively.