Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
db_gpt
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
linyangyang
db_gpt
Commits
60dba501
Commit
60dba501
authored
Aug 13, 2024
by
于飞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
查询和添加
parent
52ab7331
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
34 deletions
+24
-34
crud.py
dbgpt/app/apps/vadmin/word/crud.py
+16
-29
views.py
dbgpt/app/apps/vadmin/word/views.py
+8
-5
No files found.
dbgpt/app/apps/vadmin/word/crud.py
View file @
60dba501
...
...
@@ -36,7 +36,7 @@ from dbgpt.app.apps.system import crud as vadmin_system_crud
import
copy
from
dbgpt.app.apps.utils
import
status
from
datetime
import
datetime
from
typing
import
List
class
SimilarDal
(
DalBase
):
...
...
@@ -46,38 +46,23 @@ class SimilarDal(DalBase):
self
.
model
=
models
.
similar
.
VadminWordSimilar
self
.
schema
=
schemas
.
similar
.
SimilarSchemas
async
def
test_session_cache
(
self
):
"""
SQLAlchemy 会话(Session)缓存机制:
当你通过一个会话查询数据库时,SQLAlchemy 首先检查这个对象是否已经在会话缓存中。如果是,它会直接从缓存中返回对象,而不是从数据库重新加载。
在一个会话中,对于具有相同主键的实体,会话缓存确保只有一个唯一的对象实例。这有助于维护数据的一致性。
会话(Session)缓存:https://blog.csdn.net/k_genius/article/details/135491059
:return:
async
def
get_similars
(
self
)
->
Any
:
sql
=
select
(
models
.
similar
.
VadminWordSimilar
)
.
where
(
models
.
similar
.
VadminWordSimilar
.
is_delete
==
false
())
queryset
=
await
self
.
db
.
scalars
(
sql
)
"""
print
(
"==================================会话缓存===================================="
)
await
self
.
test_session_cache1
()
async
def
test_session_cache1
(
self
):
for row in dataqs:
print(f"编号:{row.id} 词条:{row.word_name} 近义词:{row.similar_name} ")
"""
SQLAlchemy 会话(Session)缓存机制:
当你通过一个会话查询数据库时,SQLAlchemy 首先检查这个对象是否已经在会话缓存中。如果是,它会直接从缓存中返回对象,而不是从数据库重新加载。
在一个会话中,对于具有相同主键的实体,会话缓存确保只有一个唯一的对象实例。这有助于维护数据的一致性。
会话(Session)缓存:https://blog.csdn.net/k_genius/article/details/135491059
return
list
(
queryset
.
all
())
示例:会话缓存
:return:
"""
# 第一次查询
sql1
=
select
(
models
.
similar
.
VadminWordSimilar
)
.
where
(
models
.
similar
.
VadminWordSimilar
.
id
==
1
)
async
def
get_similar_byid
(
self
,
qid
):
sql1
=
select
(
models
.
similar
.
VadminWordSimilar
)
.
where
(
models
.
similar
.
VadminWordSimilar
.
id
==
qid
)
queryset1
=
await
self
.
db
.
scalars
(
sql1
)
similar1
=
queryset1
.
unique
()
.
first
()
if
similar1
is
None
:
print
(
'similar1 is None'
)
print
(
'similar1 is None'
)
else
:
print
(
f
"编号:{similar1.id} 词条:{similar1.word_name} 近义词:{similar1.similar_name} "
)
print
(
f
"编号:{similar1.id} 词条:{similar1.word_name} 近义词:{similar1.similar_name} "
)
async
def
create_similar_data
(
self
,
...
...
@@ -95,9 +80,11 @@ class SimilarDal(DalBase):
:return:
"""
if
data
is
None
:
print
(
'SimilarIn is None'
)
else
:
print
(
f
"词条:{data.word_name} 近义词:{data.similar_name} "
)
raise
CustomException
(
"data is None!"
,
code
=
status
.
HTTP_ERROR
)
unique
=
await
self
.
get_data
(
word_name
=
data
.
word_name
,
v_return_none
=
True
)
if
unique
:
raise
CustomException
(
"词条已存在!"
,
code
=
status
.
HTTP_ERROR
)
obj
=
self
.
model
()
obj
.
word_name
=
data
.
word_name
...
...
dbgpt/app/apps/vadmin/word/views.py
View file @
60dba501
...
...
@@ -10,6 +10,7 @@ from dbgpt.app.apps.vadmin.word.models.similar import VadminWordSimilar
from
dbgpt.app.apps.vadmin.word.params.similar
import
SimilarParams
from
dbgpt.app.apps.vadmin.word.schemas.similar
import
SimilarSchemas
,
SimilarIn
from
dbgpt.app.apps.vadmin.word
import
crud
from
fastapi.encoders
import
jsonable_encoder
router
=
APIRouter
()
...
...
@@ -17,15 +18,17 @@ router = APIRouter()
###########################################################
# 同义词管理
###########################################################
@
router
.
get
(
"/
similar
"
,
summary
=
"获取同义词列表"
)
async
def
get_similar
(
auth
:
Auth
=
Depends
(
OpenAuth
())):
@
router
.
get
(
"/
get_similars
"
,
summary
=
"获取同义词列表"
)
async
def
get_similar
s
(
auth
:
Auth
=
Depends
(
OpenAuth
())):
model
=
VadminWordSimilar
print
(
f
"编号:{model.id} 近义词:{model.word_name}"
)
await
crud
.
SimilarDal
(
auth
.
db
)
.
test_session_cache
()
datas
=
await
crud
.
SimilarDal
(
auth
.
db
)
.
get_similars
()
jsondatas
=
jsonable_encoder
(
datas
)
datas
=
[]
return
SuccessResponse
(
datas
,
count
=
1
)
for
row
in
datas
:
print
(
f
"编号:{row.id} 词条:{row.word_name} 近义词:{row.similar_name} "
)
return
SuccessResponse
(
jsondatas
,
count
=
1
)
@
router
.
post
(
"/create_similar"
,
summary
=
"创建同义词"
)
async
def
create_similar
(
data
:
Request
,
auth
:
Auth
=
Depends
(
OpenAuth
())):
...
...
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