from flask import Flask, render_template from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from .models import Base, Author, Book from crudkit.blueprint import make_blueprint as make_json_blueprint from crudkit.html import make_fragments_blueprint engine = create_engine("sqlite:///example.db", echo=True, future=True) SessionLocal = sessionmaker(bind=engine, expire_on_commit=False) def session_factory(): return SessionLocal() registry = {"author": Author, "book": Book} def create_app(): app = Flask(__name__) Base.metadata.create_all(engine) app.register_blueprint(make_json_blueprint(session_factory, registry), url_prefix="/api") app.register_blueprint(make_fragments_blueprint(session_factory, registry), url_prefix="/ui") @app.get("/demo") def demo(): return render_template("demo.html") return app if __name__ == "__main__": create_app().run(debug=True)