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.

40 lines
946 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 flask_pagedown import PageDown
  8. from config import config
  9. bootstrap = Bootstrap()
  10. mail = Mail()
  11. moment = Moment()
  12. db = SQLAlchemy()
  13. pagedown = PageDown()
  14. login_manager = LoginManager()
  15. login_manager.login_view = 'auth.login'
  16. def create_app(config_name):
  17. app = Flask(__name__)
  18. app.config.from_object(config[config_name])
  19. config[config_name].init_app(app)
  20. bootstrap.init_app(app)
  21. mail.init_app(app)
  22. moment.init_app(app)
  23. db.init_app(app)
  24. login_manager.init_app(app)
  25. pagedown.init_app(app)
  26. from .main import main as main_blueprint
  27. app.register_blueprint(main_blueprint)
  28. from .auth import auth as auth_blueprint
  29. app.register_blueprint(auth_blueprint, url_prefix='/auth')
  30. return app