39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
import flask
|
|
import logging
|
|
logging.basicConfig(level=logging.DEBUG)
|
|
from formity.admin import IndexView
|
|
from formity.external_auth import ExternalSpaceAuth
|
|
from formity.extensions import db, migrate, admin, babel, metrics, cache
|
|
|
|
def create_app():
|
|
app = flask.Flask(
|
|
__name__,
|
|
template_folder='../templates',
|
|
static_folder='../static',
|
|
)
|
|
|
|
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
|
app.config.from_object('formity.settings.%s' % app.env)
|
|
|
|
db.init_app(app)
|
|
migrate.init_app(app, db)
|
|
babel.init_app(app)
|
|
ExternalSpaceAuth().init_app(app)
|
|
metrics.init_app(app)
|
|
cache.init_app(app)
|
|
|
|
import formity.views
|
|
import formity.models
|
|
import formity.scripts
|
|
|
|
admin.init_app(app, index_view=IndexView())
|
|
|
|
app.register_blueprint(formity.views.bp)
|
|
app.cli.add_command(formity.scripts.cli)
|
|
|
|
from werkzeug.contrib.fixers import ProxyFix
|
|
if app.config.get('PROXYFIX_ENABLE'):
|
|
app.wsgi_app = ProxyFix(app.wsgi_app, app.config.get('PROXYFIX_NUM_PROXIES'))
|
|
|
|
return app
|