31 lines
1.1 KiB
Python
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, {})
|
|
return render_template('index.html', table=table, form=form)
|
|
|
|
if __name__ == '__main__':
|
|
app.run(debug=True, host='127.0.0.1', port=5050)
|