from flask import Blueprint, jsonify, request def generate_crud_blueprint(model, service): bp = Blueprint(model.__name__.lower(), __name__) @bp.get('/') def list_items(): items = service.list(request.args) return jsonify([item.as_dict() for item in items]) @bp.get('/') def get_item(id): item = service.get(id, request.args) return jsonify(item.as_dict()) @bp.post('/') def create_item(): obj = service.create(request.json) return jsonify(obj.as_dict()) @bp.patch('/') def update_item(id): obj = service.update(id, request.json) return jsonify(obj.as_dict()) @bp.delete('/') def delete_item(id): service.delete(id) return '', 204 return bp