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

查询和添加

parent 52ab7331
......@@ -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
......
......@@ -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_similars(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())):
......
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