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
1.1 KiB

  1. from flask import Flask
  2. from flask_admin import Admin
  3. from flask_admin.contrib.sqla import ModelView
  4. def create_app():
  5. app = Flask(__name__)
  6. app.config.from_object('acks.default_settings')
  7. app.config.from_envvar('FLASK_SETTINGS_FILE')
  8. # Prep the database
  9. from acks.models import db
  10. app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///../data/acks.db'
  11. app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
  12. db.init_app(app)
  13. # Load our views
  14. from acks.views import default_views
  15. app.register_blueprint(default_views)
  16. from acks.npc.views import npc_views
  17. app.register_blueprint(npc_views)
  18. # Load our CLI commands
  19. from acks.commands import default_cli
  20. app.cli.add_command(default_cli)
  21. from acks.npc.commands import npc_cli
  22. app.cli.add_command(npc_cli)
  23. # Load the Admin views
  24. admin = Admin(app, name='acks', template_mode='bootstrap3')
  25. from acks.npc.models import admin_models as npc_admin_models
  26. for mdl in npc_admin_models:
  27. admin.add_view(ModelView(mdl, db.session))
  28. return app