Commit 60dba501 authored by 于飞's avatar 于飞

查询和添加

parent 52ab7331
...@@ -36,7 +36,7 @@ from dbgpt.app.apps.system import crud as vadmin_system_crud ...@@ -36,7 +36,7 @@ from dbgpt.app.apps.system import crud as vadmin_system_crud
import copy import copy
from dbgpt.app.apps.utils import status from dbgpt.app.apps.utils import status
from datetime import datetime from datetime import datetime
from typing import List
class SimilarDal(DalBase): class SimilarDal(DalBase):
...@@ -46,32 +46,17 @@ class SimilarDal(DalBase): ...@@ -46,32 +46,17 @@ class SimilarDal(DalBase):
self.model = models.similar.VadminWordSimilar self.model = models.similar.VadminWordSimilar
self.schema = schemas.similar.SimilarSchemas self.schema = schemas.similar.SimilarSchemas
async def test_session_cache(self): async def get_similars(self)-> Any:
""" sql = select(models.similar.VadminWordSimilar).where(models.similar.VadminWordSimilar.is_delete == false())
SQLAlchemy 会话(Session)缓存机制: queryset = await self.db.scalars(sql)
当你通过一个会话查询数据库时,SQLAlchemy 首先检查这个对象是否已经在会话缓存中。如果是,它会直接从缓存中返回对象,而不是从数据库重新加载。
在一个会话中,对于具有相同主键的实体,会话缓存确保只有一个唯一的对象实例。这有助于维护数据的一致性。
会话(Session)缓存:https://blog.csdn.net/k_genius/article/details/135491059
:return:
""" """
print("==================================会话缓存====================================") for row in dataqs:
await self.test_session_cache1() print(f"编号:{row.id} 词条:{row.word_name} 近义词:{row.similar_name} ")
async def test_session_cache1(self):
""" """
SQLAlchemy 会话(Session)缓存机制: return list(queryset.all())
当你通过一个会话查询数据库时,SQLAlchemy 首先检查这个对象是否已经在会话缓存中。如果是,它会直接从缓存中返回对象,而不是从数据库重新加载。
在一个会话中,对于具有相同主键的实体,会话缓存确保只有一个唯一的对象实例。这有助于维护数据的一致性。
会话(Session)缓存:https://blog.csdn.net/k_genius/article/details/135491059
示例:会话缓存 async def get_similar_byid(self, qid):
sql1 = select(models.similar.VadminWordSimilar).where(models.similar.VadminWordSimilar.id == qid)
:return:
"""
# 第一次查询
sql1 = select(models.similar.VadminWordSimilar).where(models.similar.VadminWordSimilar.id == 1)
queryset1 = await self.db.scalars(sql1) queryset1 = await self.db.scalars(sql1)
similar1 = queryset1.unique().first() similar1 = queryset1.unique().first()
if similar1 is None: if similar1 is None:
...@@ -95,9 +80,11 @@ class SimilarDal(DalBase): ...@@ -95,9 +80,11 @@ class SimilarDal(DalBase):
:return: :return:
""" """
if data is None: if data is None:
print('SimilarIn is None') raise CustomException("data is None!", code=status.HTTP_ERROR)
else:
print(f"词条:{data.word_name} 近义词:{data.similar_name} ") 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 = self.model()
obj.word_name = data.word_name obj.word_name = data.word_name
......
...@@ -10,6 +10,7 @@ from dbgpt.app.apps.vadmin.word.models.similar import VadminWordSimilar ...@@ -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.params.similar import SimilarParams
from dbgpt.app.apps.vadmin.word.schemas.similar import SimilarSchemas, SimilarIn from dbgpt.app.apps.vadmin.word.schemas.similar import SimilarSchemas, SimilarIn
from dbgpt.app.apps.vadmin.word import crud from dbgpt.app.apps.vadmin.word import crud
from fastapi.encoders import jsonable_encoder
router = APIRouter() router = APIRouter()
...@@ -17,15 +18,17 @@ router = APIRouter() ...@@ -17,15 +18,17 @@ router = APIRouter()
########################################################### ###########################################################
# 同义词管理 # 同义词管理
########################################################### ###########################################################
@router.get("/similar", summary="获取同义词列表") @router.get("/get_similars", summary="获取同义词列表")
async def get_similar(auth: Auth = Depends(OpenAuth())): async def get_similars(auth: Auth = Depends(OpenAuth())):
model = VadminWordSimilar model = VadminWordSimilar
print(f"编号:{model.id} 近义词:{model.word_name}") 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 = [] for row in datas:
return SuccessResponse(datas, count=1) print(f"编号:{row.id} 词条:{row.word_name} 近义词:{row.similar_name} ")
return SuccessResponse(jsondatas, count=1)
@router.post("/create_similar", summary="创建同义词") @router.post("/create_similar", summary="创建同义词")
async def create_similar(data: Request, auth: Auth = Depends(OpenAuth())): async def create_similar(data: Request, auth: Auth = Depends(OpenAuth())):
......
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