import os import sqlite3 import json from flask import Flask, render_template_string, request, jsonify, send_from_directory DB_PATH = os.environ.get('DB_PATH', '/app/data/consulting.db') app = Flask(__name__, static_folder='static', static_url_path='/python-editor/static') HTML = ''' Architectuur Designer — Mek-Tech
100%

Eigenschappen

''' @app.route('/python-editor/') def index(): diagram_id = request.args.get('id') nodes_json = '[]' edges_json = '[]' if diagram_id: try: conn = sqlite3.connect(DB_PATH) c = conn.cursor() c.execute('SELECT nodes FROM data_diagrams WHERE id=?', (diagram_id,)) row = c.fetchone() conn.close() if row: data = json.loads(row[0]) nodes_json = json.dumps(data.get('nodes', [])) edges_json = json.dumps(data.get('edges', [])) except: pass return render_template_string(HTML, diagram_id=diagram_id or '', nodes_json=nodes_json, edges_json=edges_json) @app.route('/python-editor/api/clients') def api_clients(): conn = sqlite3.connect(DB_PATH) c = conn.cursor() c.execute('SELECT id, name FROM clients ORDER BY name') clients = [{'id': r[0], 'name': r[1]} for r in c.fetchall()] conn.close() return jsonify(clients) @app.route('/python-editor/api/save', methods=['POST']) def api_save(): data = request.get_json() name = data.get('name') client_id = data.get('client_id') nodes = json.dumps(data.get('nodes', [])) edges = json.dumps(data.get('edges', [])) diagram_id = data.get('id') conn = sqlite3.connect(DB_PATH) c = conn.cursor() if diagram_id: c.execute('UPDATE data_diagrams SET name=?, client_id=?, nodes=?, edges=?, updated_at=datetime(\'now\') WHERE id=?', (name, client_id, nodes, edges, diagram_id)) else: c.execute('INSERT INTO data_diagrams (client_id, name, nodes, edges, diagram_type) VALUES (?,?,?,?,?)', (client_id, name, nodes, edges, 'data_architecture')) diagram_id = c.lastrowid conn.commit() conn.close() return jsonify({'id': diagram_id}) if __name__ == '__main__': port = int(os.environ.get('PY_PORT', 3001)) app.run(host='0.0.0.0', port=port, debug=False)