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.
56 lines
1.5 KiB
56 lines
1.5 KiB
from flask import Flask
|
|
|
|
|
|
|
|
def create_app():
|
|
app = Flask(__name__)
|
|
app.config.from_object('acks.default_settings')
|
|
app.config.from_envvar('FLASK_SETTINGS_FILE')
|
|
|
|
# Prep the database
|
|
from acks.models import db
|
|
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///../data/acks.db'
|
|
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
|
db.init_app(app)
|
|
|
|
# Prep basic auth
|
|
from acks.views import basic_auth
|
|
basic_auth.init_app(app)
|
|
|
|
# Load our views
|
|
from acks.views import default_views
|
|
app.register_blueprint(default_views)
|
|
|
|
from acks.npc.views import npc_views
|
|
app.register_blueprint(npc_views)
|
|
|
|
from acks.quest.views import quest_views
|
|
app.register_blueprint(quest_views)
|
|
|
|
# Load our CLI commands
|
|
from acks.commands import default_cli
|
|
app.cli.add_command(default_cli)
|
|
|
|
from acks.npc.commands import npc_cli
|
|
app.cli.add_command(npc_cli)
|
|
|
|
# Load the Admin views
|
|
from flask_admin import Admin
|
|
from flask_admin.contrib.sqla import ModelView
|
|
admin = Admin(app, name='acks', template_mode='bootstrap3')
|
|
|
|
from acks.npc.models import admin_models as npc_admin_models
|
|
for mdl in npc_admin_models:
|
|
admin.add_view(ModelView(mdl, db.session))
|
|
|
|
# Initialize API and load resources
|
|
from flask_potion import Api, ModelResource
|
|
api = Api(app, prefix='/api')
|
|
# from acks.api import api
|
|
# api.init_app(app)
|
|
|
|
from acks.npc.api import resources as npc_resources
|
|
for resource in npc_resources:
|
|
api.add_resource(resource)
|
|
|
|
return app
|