Commit b83824d2 authored by xianyang's avatar xianyang

代码优化

parent b41a1181
......@@ -102,6 +102,7 @@ def tx_query_list(database_name, mon_sql, field_list):
if res.status_code != 200:
raise Exception(res.text)
content = json.loads(res.text)
Logger(21).logger.info(f"---结果:{content}--")
Logger(21).logger.info(
f"数据库查询sql:{database_name}---结果:{content.get('code')}---,开始时间:{start_time},结束时间:{end_time}")
if res.status_code == 200:
......@@ -111,3 +112,99 @@ def tx_query_list(database_name, mon_sql, field_list):
else:
row = []
return row
import jaydebeapi
def dlc_resultset(database_name,sql_sentence, fields):
SecretId = "AKID1sWw86RVyJVSDlBA1e3D9rLbdVDyusAI"
SecretKey = "4va1GH5gCVcWEj3A9wb3ILFxSo24tWw9"
dirver = "com.tencent.cloud.dlc.jdbc.DlcDriver"
jarFile = '../static/dlc-jdbc-2.2.0-jar-with-dependencies.jar'
url = f'jdbc:dlc:dlc.tencentcloudapi.com?task_type=SQLTask&database_name={database_name}&datasource_connection_name=DataLakeCatalog&region=ap-guangzhou&data_engine_name=shared_prestos&result_type=COS'
end = int(time.time())
try:
start = int(time.time())
conn = jaydebeapi.connect(dirver, url, [SecretId, SecretKey], jarFile)
curs = conn.cursor()
curs.execute(sql_sentence)
result = curs.fetchall()
curs.close()
conn.close()
result_datas = datum_datas(sql_sentence, result, fields).datum_dispose()
Logger(21).logger.info.info(f"数据为:{result_datas}+“-----”+总数为:{len(result)}")
end = int(time.time())
return Logger(21).logger.info(
{'code': 200, 'msg': '创建成功', 'status': 'SUCCESS', 'rows': result_datas, 'total': len(result_datas)})
except Exception as e:
start = int(time.time())
Logger(21).logger.info(f"请求的sql:{sql_sentence}" + "-----" + f"花费时间为+{end - start}" + "-----" + f"异常为{e}")
return {'code': 500, 'msg': '请求异常', 'status': 'SUCCESS', 'rows': '', 'error': str(e)}
import re
class datum_datas():
def __init__(self, sql, data, fields):
self.sql = sql
self.da = ''
self.data = data
self.fields = fields
def datum_dispose(self):
data = re.findall("select(.*?) from", self.sql)
if self.fields:
self.da = self.fields
data_origin = self.daum_detry()
return data_origin
else:
for date in data:
da = date.split(',')
self.da = da
data_origin = self.datum_collect()
return data_origin
def daum_detry(self):
total = []
for i in range(len(self.data)):
b = 0
items = {}
for item in self.da:
items[item] = self.data[i][b]
b += 1
total.append(items)
return total
def datum_collect(self):
total_data = []
for i in range(len(self.data)):
item = {}
s = 0
c = 0
for de in self.da:
if 'as' in de:
if len(self.da) > 1:
name = self.da[s].split('as')[1]
else:
name = de.split('as')[1]
try:
name = name.strip()
if '`' in name:
name = name
c += 1
except Exception as e:
continue
else:
name = de.split('b.')[1]
try:
if self.data[i][s] == 'id':
continue
except Exception as e:
continue
try:
item[name] = self.data[i][s]
except:
item[name] = self.data[i]
s += 1
total_data.append(item)
return total_data
......@@ -23,30 +23,33 @@ app.add_middleware(
allow_headers=['*']) # 允许跨域的headers,可以用来鉴别来源等作用。
@app.middleware("http")
async def add_process_time_header(request: Request, call_next):
hs = request.headers
token = hs.get("authorization")
start_time = time.time()
try:
response = await call_next(request)
except:
return ""
process_time = time.time() - start_time
response.headers["X-Process-Time"] = str(process_time)
url_list = ['/api/users/imgCode', '/api/users/login', '/api/users/goodleCode', '/api/users/googleLogin']
if request.url.path in url_list:
return response
if token:
try:
payload = jwt.decode(token.replace('Bearer','').replace(' ',''), env.SECRET_KEY, algorithms=[env.ALGORITHM])
except Exception as e:
print(e)
return response
timestamp = payload.get("exp")
access_token_expires = timedelta(hours=time_format(timestamp))
create_access_token({'username':payload.get("xup"),'password':payload.get("password")},expires_delta=access_token_expires) #更新token时间
return response
# @app.middleware("http")
# async def add_process_time_header(request: Request, call_next):
# hs = request.headers
# token = hs.get("authorization")
# start_time = time.time()
# if isinstance(request, Request):
# try:
# response = await call_next(request)
# except:
# raise ValueError("Custom Middleware Exception")
# else:
# raise ValueError("Custom Middleware Exception")
# process_time = time.time() - start_time
# response.headers["X-Process-Time"] = str(process_time)
# url_list = ['/api/users/imgCode', '/api/users/login', '/api/users/goodleCode', '/api/users/googleLogin']
# if request.url.path in url_list:
# return response
# if token:
# try:
# payload = jwt.decode(token.replace('Bearer', '').replace(' ', ''), env.SECRET_KEY, algorithms=[env.ALGORITHM])
# except Exception as e:
# print(e)
# return response
# timestamp = payload.get("exp")
# access_token_expires = timedelta(hours=time_format(timestamp))
# create_access_token({'username':payload.get("xup"),'password':payload.get("password")},expires_delta=access_token_expires) #更新token时间
# return response
app.include_router(api_router, prefix="/api") # 路由
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment