bugfix: 修复sqlalchemy执行方法版本固定导致的错误

This commit is contained in:
chenwj 2023-01-18 11:12:53 +08:00
parent 963afc7fe8
commit 65609f7418
1 changed files with 21 additions and 2 deletions

View File

@ -5,15 +5,28 @@ from traceback import format_exc
from fastapi_sqlalchemy import db
from jinja2 import Template
from pymysql import err
import sqlalchemy
__author__ = 'Woodstock'
logger = logging.getLogger("uvicorn.error")
engine = None
class EDatabase(Exception):
def __init__(self, *args):
super(EDatabase, self).__init__(*args)
def result(self):
return None
class DB:
CACHE = None
ACCESS_TOKEN = None
IS_LOCAL_TEST = False
version = sqlalchemy.__version__
def __init__(self, session=None):
"""
@ -66,7 +79,10 @@ class DB:
def all(self):
# 获取查询列表。把ResultProxy和RowProxy类型封装成python的list和dict类型
data = [dict(zip(i.keys(), i.values())) for i in self.result]
if self.version.startswith('1.4'):
data = [i._asdict for i in self.result]
else:
data = [dict(zip(i.keys(), i.values())) for i in self.result]
self.result.close()
return data
@ -92,7 +108,10 @@ class DB:
row = None
# 获取第一行数据
for i in self.result:
row = dict(zip(i.keys(), i.values()))
if self.version.startswith('1.4'):
row = i._asdict()
else:
row = dict(zip(i.keys(), i.values()))
break
self.result.close()
return row