diff --git a/src/biz/__init__.py b/src/biz/__init__.py index 9cbe673..1be3ff6 100644 --- a/src/biz/__init__.py +++ b/src/biz/__init__.py @@ -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