diff --git a/src/biz/__init__.py b/src/biz/__init__.py index 74a6e2e..409978d 100644 --- a/src/biz/__init__.py +++ b/src/biz/__init__.py @@ -1,11 +1,13 @@ import logging import time from traceback import format_exc - +import struct import sqlalchemy from fastapi_sqlalchemy import db from jinja2 import Template from pymysql import err +from pymysql.constants import FIELD_TYPE +from pymysql.converters import conversions, convert_time __author__ = 'Woodstock' @@ -13,6 +15,10 @@ logger = logging.getLogger("uvicorn.error") engine = None +conversions[FIELD_TYPE.BIT] = lambda b: struct.unpack(">Q", (bytes([0x00]) * (8 - len(b)) + b))[0] +conversions[FIELD_TYPE.TIME] = convert_time +conversions[FIELD_TYPE.DATETIME] = str + class EDatabase(Exception): def __init__(self, *args): @@ -80,7 +86,7 @@ class DB: def all(self): # 获取查询列表。把ResultProxy和RowProxy类型封装成python的list和dict类型 if self.version.startswith('1.4'): - data = [i._asdict for i in self.result] + data = [i._asdict() for i in self.result] else: data = [dict(zip(i.keys(), i.values())) for i in self.result] self.result.close()