You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
1.3 KiB

9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
  1. from fastapi import Depends, APIRouter, status, Query, Path, HTTPException
  2. from internal.models import *
  3. from internal.database import fetch_one, fetch_all, execute_query, response_success, raise_if_exists,raise_if_not_found
  4. from dependencies import get_current_active_user
  5. router = APIRouter(
  6. prefix="/classtics",
  7. tags=['语录管理']
  8. )
  9. # 获取列表
  10. @router.get("/list")
  11. async def classtic_list():
  12. select_query = "SELECT id,header,`text`,descr FROM classtics;"
  13. classtic_list = fetch_all(select_query)
  14. return response_success(classtic_list, "classtic get list success")
  15. # 新增
  16. @router.post("/add")
  17. async def classtic_add(classtic:Classtic):
  18. insert_query="""INSERT INTO classtics (header,`text`,descr) VALUES(%s,%s,%s)"""
  19. insert_value=(classtic.header,classtic.text,classtic.descr)
  20. execute_query(insert_query,insert_value)
  21. return response_success(data=classtic,message="classtic create success")
  22. # 单条数据查询
  23. @router.get("/search")
  24. async def classtic_search(header:str=Query(description="语录标题")):
  25. select_query="SELECT header FROM classtics WHERE 1=1 "
  26. params=[]
  27. if header:
  28. select_query+="AND header LIKE %s"
  29. params.append(f"%{header}%")
  30. classtic_query=fetch_all(select_query,params=params,fetchall=True)
  31. return response_success(data=classtic_query,message="classtic search success")