Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
financial-system
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xianyang
financial-system
Commits
b83824d2
Commit
b83824d2
authored
Nov 21, 2023
by
xianyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
代码优化
parent
b41a1181
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
124 additions
and
24 deletions
+124
-24
dlc.py
libs/dlc.py
+97
-0
main.py
main.py
+27
-24
No files found.
libs/dlc.py
View file @
b83824d2
...
...
@@ -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®ion=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
main.py
View file @
b83824d2
...
...
@@ -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"
)
# 路由
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment