Я хотел бы знать, хорош ли этот код, чистый и совершенный, я перехожу с PHP API базы данных на Python API базы данных
Не так много документации по PooledDB и Py MySQL и Пул соединений, так что если есть кто-то с опытом, который может сказать мне: P
import pymysql
from DBUtils.PooledDB import PooledDB
from datetime import datetime
import uuid
import flask
from flask import request, jsonify, abort
from flask_cors import CORS
MYSQL_CONFIG = {
"host": "localhost",
"port": 3306,
"db": "p3IYfVR91X",
"password": "09LD64ZvjP",
"user": "p3IYfVR91X",
"charset": "utf8mb4",
"cursorclass": pymysql.cursors.DictCursor,
"autocommit": True,
}
POOL_CONFIG = {
"creator": pymysql,
"maxconnections": 6,
"mincached": 2,
"maxcached": 5,
"maxshared": 3,
"blocking": True,
"maxusage": None,
"setsession": [],
"ping": 0,
}
# create flask for rest API service
app = flask.Flask(__name__)
app.config["DEBUG"] = True
CORS(app, resources={r'/*': {'origins': "*"}}, supports_credentials=True)
def dict_factory(cursor, row):
d = {}
for idx, col in enumerate(cursor.description):
d[col[0]] = row[idx]
return d
@app.errorhandler(404)
def flask_ret_error(e):
return "{}".format(str(e)), 404
@app.route('/', methods=['GET'])
def home():
return "You do not belong here...", 200
@app.route('/api/stuff', methods=['GET'])
def get_stuff():
try:
retval = None
conn = POOL.connection()
cur = conn.cursor()
cur.execute('SELECT * FROM stuff WHERE isDeleted<>1 AND status NOT IN (2, 3, 4) ORDER BY timestamp DESC;')
result = cur.fetchall()
retval = jsonify(result)
except pymysql.Error as Err:
retval = flask_ret_error(Err)
finally:
if cur:
cur.close()
if conn:
conn.close()
return retval
@app.route('/api/stuff/<string:id>', methods=['GET'])
def get_stuffx(id):
try:
retval = None
conn = POOL.connection()
cur = conn.cursor()
cur.execute('SELECT * FROM stuff WHERE id=%s;', (id))
result = cur.fetchone()
retval = jsonify(result)
except pymysql.Error as Err:
retval = flask_ret_error(Err)
finally:
if cur:
cur.close()
if conn:
conn.close()
return retval
Это правильный подход для этого? или я что-то упустил.