docs/usage/examples.md
## 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.