from flask import Flask from flask_jwt_extended import JWTManager from config import Config from models import db, User, UserRole from werkzeug.security import generate_password_hash from .routes import bp_api_v1 jwt = JWTManager() def create_app(): app = Flask(__name__) app.config.from_object(Config) db.init_app(app) jwt.init_app(app) app.register_blueprint(bp_api_v1, url_prefix='/api/v1') with app.app_context(): db.create_all() # Create default Owner if not exists if not User.query.first(): default_owner = User( username=app.config['DEFAULT_OWNER_USERNAME'], nickname=app.config['DEFAULT_OWNER_USERNAME'], password=generate_password_hash(app.config['DEFAULT_OWNER_PASSWORD']), role=UserRole.ADMIN ) db.session.add(default_owner) db.session.commit() return app