1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/ihatemoney_ynh.git synced 2024-09-03 19:26:15 +02:00
ihatemoney_ynh/budget/run.py
Jocelyn Delande d6c514e7d1 Adds a way to (re)configure the running app, reloading settings.
Currently, there is no way to reset settings after modifying them, which is
anoying for tests.
2015-08-19 22:53:16 +02:00

62 lines
1.3 KiB
Python

import warnings
from flask import Flask, g, request, session
from flask.ext.babel import Babel
from raven.contrib.flask import Sentry
from web import main, db, mail
from api import api
app = Flask(__name__)
def configure():
""" A way to (re)configure the app, specially reset the settings
"""
app.config.from_object("default_settings")
# Deprecations
if 'DEFAULT_MAIL_SENDER' in app.config:
# Since flask-mail 0.8
warnings.warn(
"DEFAULT_MAIL_SENDER is deprecated in favor of MAIL_DEFAULT_SENDER"
+" and will be removed in further version",
UserWarning
)
if not 'MAIL_DEFAULT_SENDER' in app.config:
app.config['MAIL_DEFAULT_SENDER'] = DEFAULT_MAIL_SENDER
configure()
app.register_blueprint(main)
app.register_blueprint(api)
# db
db.init_app(app)
db.app = app
db.create_all()
# mail
mail.init_app(app)
# translations
babel = Babel(app)
# sentry
sentry = Sentry(app)
@babel.localeselector
def get_locale():
# get the lang from the session if defined, fallback on the browser "accept
# languages" header.
lang = session.get('lang', request.accept_languages.best_match(['fr', 'en']))
setattr(g, 'lang', lang)
return lang
def main():
app.run(host="0.0.0.0", debug=True)
if __name__ == '__main__':
main()