from flask import Flask, render_template, request, redirect, url_for from test_app.models import Device, User from test_app.db import Base, engine, SessionLocal from crudkit.core.service import CRUDService from crudkit.api.flask_api import generate_crud_blueprint from crudkit.ui.fragments import render_table, render_form app = Flask(__name__) Base.metadata.create_all(engine) session = SessionLocal() device_service = CRUDService(Device, session) user_service = CRUDService(User, session) app.register_blueprint(generate_crud_blueprint(Device, device_service), url_prefix='/api/devices') app.register_blueprint(generate_crud_blueprint(User, user_service), url_prefix='/api/users') @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': device_service.create(request.form.to_dict()) return redirect(url_for('index')) devices = device_service.list() table = render_table(devices) form = render_form(Device, {}, session) return render_template('index.html', table=table, form=form) if __name__ == '__main__': app.run(debug=True, host='127.0.0.1', port=5050)