mirror of
https://codeberg.org/Mo8it/AdvLabDB.git
synced 2024-11-08 21:21:06 +00:00
52 lines
1.1 KiB
Python
52 lines
1.1 KiB
Python
from flask_migrate import Migrate
|
|
from flask_security.datastore import SQLAlchemyUserDatastore
|
|
|
|
from .config import get_settings, get_data_dir
|
|
from .models import db, User, Role
|
|
|
|
migrate = Migrate()
|
|
|
|
data_dir = get_data_dir()
|
|
settings = get_settings(data_dir)
|
|
|
|
user_datastore = SQLAlchemyUserDatastore(db, User, Role)
|
|
|
|
|
|
def create_app(create_for_server: bool = True):
|
|
from flask import Flask
|
|
|
|
app = Flask(__name__)
|
|
|
|
# Config
|
|
from .config import set_config
|
|
|
|
set_config(app, data_dir)
|
|
|
|
# Setup Flask-SQLAlchemy
|
|
|
|
db.init_app(app)
|
|
|
|
# Setup Flask-Migrate
|
|
migrate.init_app(app, db)
|
|
|
|
# Setup Flask-Security-Too
|
|
from flask_security.core import Security
|
|
|
|
Security(app, user_datastore)
|
|
|
|
if create_for_server:
|
|
# Setup views
|
|
from .adminModelViews import init_admin_model_views
|
|
|
|
init_admin_model_views(app)
|
|
|
|
from .assistantModelViews import init_assistant_model_views
|
|
|
|
init_assistant_model_views(app)
|
|
|
|
# Register blueprints
|
|
from .routes import bp as routes_bp
|
|
|
|
app.register_blueprint(routes_bp)
|
|
|
|
return app
|