crudkit/test_app/app.py
2025-09-02 14:05:52 -05:00

31 lines
1.1 KiB
Python

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)