GamerC0der commited on
Commit
967856d
·
verified ·
1 Parent(s): 0096f6e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -14
app.py CHANGED
@@ -2,7 +2,7 @@ import os
2
  import time
3
  import uuid
4
  import psutil
5
- import mysql.connector
6
  from flask import Flask, jsonify, request, abort, render_template_string
7
 
8
  app = Flask(__name__)
@@ -135,7 +135,15 @@ def get_mysql_connection(database=None):
135
  cfg = MYSQL_CONFIG.copy()
136
  if database:
137
  cfg["database"] = database
138
- return mysql.connector.connect(**cfg)
 
 
 
 
 
 
 
 
139
 
140
  def get_system_stats():
141
  cpu_percent = psutil.cpu_percent(interval=0.1)
@@ -224,26 +232,22 @@ def create_db():
224
  return jsonify({"error": f"size_mb must be between {MIN_DB_MB} and {MAX_DB_MB} MB"}), 400
225
  if total_allocated_mb() + size_mb > TOTAL_MAX_MB:
226
  return jsonify({"error": "Total allocated size would exceed 25GB limit"}), 400
227
-
228
  db_uuid = str(uuid.uuid4())
229
  db_name = f"db_{db_uuid.replace('-', '')[:16]}"
230
-
231
  try:
232
  conn = get_mysql_connection()
233
- conn.autocommit = True
234
  cur = conn.cursor()
235
  cur.execute(f"CREATE DATABASE `{db_name}`")
236
  cur.close()
237
  conn.close()
238
  except Exception as e:
239
  return jsonify({"error": f"Failed to create database: {e}"}), 500
240
-
241
  db_registry[db_uuid] = {
242
  "db_name": db_name,
243
  "size_mb": size_mb,
244
  "created_at": time.time(),
245
  }
246
-
247
  return jsonify({
248
  "uuid": db_uuid,
249
  "db_name": db_name,
@@ -255,28 +259,22 @@ def create_db():
255
  def db_query(db_uuid):
256
  if db_uuid not in db_registry:
257
  abort(404, description="Unknown database UUID")
258
-
259
  data = request.get_json(silent=True) or {}
260
  query = data.get("query")
261
  if not query:
262
  return jsonify({"status": "error", "error": "Missing 'query' in JSON body"}), 400
263
-
264
  db_name = db_registry[db_uuid]["db_name"]
265
  try:
266
  conn = get_mysql_connection(database=db_name)
267
  cur = conn.cursor()
268
  cur.execute(query)
269
-
270
  rows = None
271
  if cur.description is not None:
272
- cols = [d[0] for d in cur.description]
273
- rows = [dict(zip(cols, r)) for r in cur.fetchall()]
274
-
275
  try:
276
  conn.commit()
277
  except Exception:
278
  conn.rollback()
279
-
280
  cur.close()
281
  conn.close()
282
  return jsonify({
 
2
  import time
3
  import uuid
4
  import psutil
5
+ import pymysql
6
  from flask import Flask, jsonify, request, abort, render_template_string
7
 
8
  app = Flask(__name__)
 
135
  cfg = MYSQL_CONFIG.copy()
136
  if database:
137
  cfg["database"] = database
138
+ return pymysql.connect(
139
+ host=cfg["host"],
140
+ port=cfg["port"],
141
+ user=cfg["user"],
142
+ password=cfg["password"],
143
+ database=cfg.get("database"),
144
+ autocommit=False,
145
+ cursorclass=pymysql.cursors.DictCursor,
146
+ )
147
 
148
  def get_system_stats():
149
  cpu_percent = psutil.cpu_percent(interval=0.1)
 
232
  return jsonify({"error": f"size_mb must be between {MIN_DB_MB} and {MAX_DB_MB} MB"}), 400
233
  if total_allocated_mb() + size_mb > TOTAL_MAX_MB:
234
  return jsonify({"error": "Total allocated size would exceed 25GB limit"}), 400
 
235
  db_uuid = str(uuid.uuid4())
236
  db_name = f"db_{db_uuid.replace('-', '')[:16]}"
 
237
  try:
238
  conn = get_mysql_connection()
239
+ conn.autocommit(True)
240
  cur = conn.cursor()
241
  cur.execute(f"CREATE DATABASE `{db_name}`")
242
  cur.close()
243
  conn.close()
244
  except Exception as e:
245
  return jsonify({"error": f"Failed to create database: {e}"}), 500
 
246
  db_registry[db_uuid] = {
247
  "db_name": db_name,
248
  "size_mb": size_mb,
249
  "created_at": time.time(),
250
  }
 
251
  return jsonify({
252
  "uuid": db_uuid,
253
  "db_name": db_name,
 
259
  def db_query(db_uuid):
260
  if db_uuid not in db_registry:
261
  abort(404, description="Unknown database UUID")
 
262
  data = request.get_json(silent=True) or {}
263
  query = data.get("query")
264
  if not query:
265
  return jsonify({"status": "error", "error": "Missing 'query' in JSON body"}), 400
 
266
  db_name = db_registry[db_uuid]["db_name"]
267
  try:
268
  conn = get_mysql_connection(database=db_name)
269
  cur = conn.cursor()
270
  cur.execute(query)
 
271
  rows = None
272
  if cur.description is not None:
273
+ rows = cur.fetchall()
 
 
274
  try:
275
  conn.commit()
276
  except Exception:
277
  conn.rollback()
 
278
  cur.close()
279
  conn.close()
280
  return jsonify({