__init__.py 951 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # -*- encoding: utf-8 -*-
  2. """
  3. Copyright (c) 2019 - present AppSeed.us
  4. """
  5. from flask import Flask
  6. from flask_login import LoginManager
  7. from flask_sqlalchemy import SQLAlchemy
  8. from importlib import import_module
  9. db = SQLAlchemy()
  10. login_manager = LoginManager()
  11. def register_extensions(app):
  12. db.init_app(app)
  13. login_manager.init_app(app)
  14. def register_blueprints(app):
  15. for module_name in ('authentication', 'home'):
  16. module = import_module('apps.{}.routes'.format(module_name))
  17. app.register_blueprint(module.blueprint)
  18. def configure_database(app):
  19. @app.before_first_request
  20. def initialize_database():
  21. db.create_all()
  22. @app.teardown_request
  23. def shutdown_session(exception=None):
  24. db.session.remove()
  25. def create_app(config):
  26. app = Flask(__name__)
  27. app.config.from_object(config)
  28. register_extensions(app)
  29. register_blueprints(app)
  30. configure_database(app)
  31. return app