45 lines
951 B
Python
45 lines
951 B
Python
|
|
# -*- encoding: utf-8 -*-
|
||
|
|
"""
|
||
|
|
Copyright (c) 2019 - present AppSeed.us
|
||
|
|
"""
|
||
|
|
|
||
|
|
from flask import Flask
|
||
|
|
from flask_login import LoginManager
|
||
|
|
from flask_sqlalchemy import SQLAlchemy
|
||
|
|
from importlib import import_module
|
||
|
|
|
||
|
|
|
||
|
|
db = SQLAlchemy()
|
||
|
|
login_manager = LoginManager()
|
||
|
|
|
||
|
|
|
||
|
|
def register_extensions(app):
|
||
|
|
db.init_app(app)
|
||
|
|
login_manager.init_app(app)
|
||
|
|
|
||
|
|
|
||
|
|
def register_blueprints(app):
|
||
|
|
for module_name in ('authentication', 'home'):
|
||
|
|
module = import_module('apps.{}.routes'.format(module_name))
|
||
|
|
app.register_blueprint(module.blueprint)
|
||
|
|
|
||
|
|
|
||
|
|
def configure_database(app):
|
||
|
|
|
||
|
|
@app.before_first_request
|
||
|
|
def initialize_database():
|
||
|
|
db.create_all()
|
||
|
|
|
||
|
|
@app.teardown_request
|
||
|
|
def shutdown_session(exception=None):
|
||
|
|
db.session.remove()
|
||
|
|
|
||
|
|
|
||
|
|
def create_app(config):
|
||
|
|
app = Flask(__name__)
|
||
|
|
app.config.from_object(config)
|
||
|
|
register_extensions(app)
|
||
|
|
register_blueprints(app)
|
||
|
|
configure_database(app)
|
||
|
|
return app
|