You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
861 B

  1. from flask import Flask
  2. from flask_bootstrap import Bootstrap
  3. from flask_mail import Mail
  4. from flask_moment import Moment
  5. from flask_sqlalchemy import SQLAlchemy
  6. from flask_login import LoginManager
  7. from config import config
  8. bootstrap = Bootstrap()
  9. mail = Mail()
  10. moment = Moment()
  11. db = SQLAlchemy()
  12. login_manager = LoginManager()
  13. login_manager.login_view = 'auth.login'
  14. def create_app(config_name):
  15. app = Flask(__name__)
  16. app.config.from_object(config[config_name])
  17. config[config_name].init_app(app)
  18. bootstrap.init_app(app)
  19. mail.init_app(app)
  20. moment.init_app(app)
  21. db.init_app(app)
  22. login_manager.init_app(app)
  23. from .main import main as main_blueprint
  24. app.register_blueprint(main_blueprint)
  25. from .auth import auth as auth_blueprint
  26. app.register_blueprint(auth_blueprint, url_prefix='/auth')
  27. return app