Browse Source

add new

master
panda 9 months ago
parent
commit
3c4dd3f467
  1. 35
      internal/models.py
  2. 4
      routers/blogmanage.py
  3. 52
      routers/commonlinkmanage.py
  4. 50
      routers/labelmanage.py
  5. 66
      routers/typemanage.py

35
internal/models.py

@ -71,21 +71,40 @@ class Classtic(BaseModel):
description="备注允许为空" description="备注允许为空"
)] )]
class TypeList(BaseModel):
blogid:Annotated[int,Field(
title="博客id",
class ComLink(BaseModel):
linktext:Annotated[str,Field(
title="链接名称",
description="名称不允许为空"
)]
linkurl:Annotated[str,Field(
title="链接地址",
description="地址不允许为空"
)]
descr:Annotated[str,Field(
title="备注",
default=None, default=None,
description="博客id可以为空"
description="备注允许为空"
)] )]
class Type(BaseModel):
typename:Annotated[str,Field( typename:Annotated[str,Field(
title="类型名称", title="类型名称",
examples=['typename'],
pattern=r'^.{2,50}$',
description="允许2-50个字符"
description="名称不允许为空"
)]
descr:Annotated[str,Field(
title="备注",
default=None,
description="备注允许为空"
)]
class Label(BaseModel):
labelname:Annotated[str,Field(
title="标签名称",
description="名称不允许为空"
)] )]
descr:Annotated[str,Field( descr:Annotated[str,Field(
title="备注", title="备注",
default=None, default=None,
description="博客类型允许为空"
description="备注允许为空"
)] )]

4
routers/blogmanage.py

@ -1,4 +1,4 @@
from fastapi import Depends, APIRouter, status, Query, Path, HTTPException
from fastapi import Depends, APIRouter, Query, Path
from internal.models import * from internal.models import *
from internal.database import ( from internal.database import (
fetch_one, fetch_one,
@ -13,8 +13,6 @@ from dependencies import get_current_active_user
router = APIRouter(prefix="/blogs", tags=["博客管理"]) router = APIRouter(prefix="/blogs", tags=["博客管理"])
# 获取列表 # 获取列表
@router.get("/list") @router.get("/list")
async def blog_list(): async def blog_list():
select_query = """ select_query = """

52
routers/commonlinkmanage.py

@ -4,7 +4,7 @@ from internal.database import fetch_one, fetch_all, execute_query, response_succ
from dependencies import get_current_active_user from dependencies import get_current_active_user
router = APIRouter( router = APIRouter(
prefix="/comlink",
prefix="/comlinks",
tags=['链接管理'] tags=['链接管理']
) )
# 获取列表 # 获取列表
@ -12,4 +12,52 @@ router = APIRouter(
async def comlink_list(): async def comlink_list():
select_query = "SELECT id,linktext,linkurl,descr FROM comlinks;" select_query = "SELECT id,linktext,linkurl,descr FROM comlinks;"
comlink_list = fetch_all(select_query) comlink_list = fetch_all(select_query)
return response_success(comlink_list, "comlink get list success")
return response_success(comlink_list, "comlink get list success")
# 新增
@router.post("/add")
async def link_add(link:ComLink):
insert_query="""INSERT INTO comlinks (linktext,linkurl,descr) VALUES(%s,%s,%s)"""
insert_value=(link.linktext,link.linkurl,link.descr)
execute_query(insert_query,insert_value)
return response_success(data=link,message="link create success")
# 单条数据查询
@router.get("/list/search")
async def link_search(linktext:str=Query(description="链接名称")):
select_query="SELECT id,linktext,linkurl,descr FROM comlinks WHERE 1=1 "
params=[]
if linktext:
select_query+="AND linktext LIKE %s"
params.append(f"%{linktext}%")
link_query=fetch_all(select_query,params=params,fetchall=True)
return response_success(data=link_query,message="link search success")
# 链接修改
@router.put("/update/{id}")
async def link_put(link:ComLink,id: str = Path(description="链接id")):
update_query = (
"UPDATE comlinks SET linktext=%s,linkurl=%s,descr=%s WHERE id=%s;"
)
update_data = (link.linktext, link.linkurl,
link.descr,id)
execute_query(update_query, update_data)
return response_success("link update sucess")
# 链接删除
@router.delete("/delete/{id}")
async def link_del(id: str = Path(description="链接id")):
update_query = (
"DELETE FROM comlinks WHERE id=%s;"
)
update_data = (id)
execute_query(update_query, update_data)
return response_success()
# 根据id查询链接
@router.get("/list/search/{id}")
async def link_search_id(id:str=Path(description="链接id")):
select_query="SELECT * FROM comlinks WHERE id=%s"
link_query=fetch_one(select_query,(id,))
return response_success(data=link_query,message="link search success")

50
routers/labelmanage.py

@ -10,6 +10,52 @@ router = APIRouter(
# 获取列表 # 获取列表
@router.get("/list") @router.get("/list")
async def label_list(): async def label_list():
select_query = "SELECT blogs.`blogtitle`,labels.`labelname` FROM blogs LEFT JOIN blog_label ON blog_label.`blogid`=blogs.`id` LEFT JOIN labels ON blog_label.`labelid`=labels.id;"
select_query = "SELECT id,labelname,descr FROM labels;"
label_list = fetch_all(select_query) label_list = fetch_all(select_query)
return response_success(label_list, "label get list success")
return response_success(label_list, "label get list success")
# 新增
@router.post("/add")
async def label_add(label:Label):
insert_query="""INSERT INTO labels (labelname,descr) VALUES(%s,%s)"""
insert_value=(label.labelname,label.descr)
execute_query(insert_query,insert_value)
return response_success(data=label,message="label create success")
# 单条数据查询
@router.get("/list/search")
async def label_search(labelname:str=Query(description="标签名称")):
select_query="SELECT id,labelname,descr FROM labels WHERE 1=1 "
params=[]
if labelname:
select_query+="AND labelname LIKE %s"
params.append(f"%{labelname}%")
label_query=fetch_all(select_query,params=params,fetchall=True)
return response_success(data=label_query,message="label search success")
# 语录修改
@router.put("/update/{id}")
async def label_put(label:Label,id: str = Path(description="标签id")):
update_query = (
"UPDATE labels SET labelname=%s,descr=%s WHERE id=%s;"
)
update_data = (label.labelname,label.descr,id)
execute_query(update_query, update_data)
return response_success("label update sucess")
# 语录删除
@router.delete("/delete/{id}")
async def label_del(id: str = Path(description="标签id")):
update_query = (
"DELETE FROM labels WHERE id=%s;"
)
update_data = (id)
execute_query(update_query, update_data)
return response_success()
# 根据id查询语录
@router.get("/list/search/{id}")
async def label_search_id(id:str=Path(description="标签id")):
select_query="SELECT * FROM labels WHERE id=%s"
label_query=fetch_one(select_query,(id,))
return response_success(data=label_query,message="label search success")

66
routers/typemanage.py

@ -1,17 +1,61 @@
from fastapi import APIRouter, Depends, status
from fastapi import Depends, APIRouter, status, Query, Path, HTTPException
from internal.models import * from internal.models import *
from dependencies import get_current_active_user, execute_query
from internal.database import fetch_one, fetch_all, execute_query, response_success, raise_if_exists,raise_if_not_found
from dependencies import get_current_active_user
router = APIRouter( router = APIRouter(
prefix="/types", prefix="/types",
tags=["分类管理"]
tags=['类型管理']
) )
# 获取列表
@router.get("/list") @router.get("/list")
async def read_type_all():
async def type_list():
select_query = "SELECT id,typename,descr FROM types;" select_query = "SELECT id,typename,descr FROM types;"
type_all = execute_query(select_query, fetchall=True)
return {
"status": status.HTTP_200_OK,
"message": "type search successfully!",
"data": type_all
}
type_list = fetch_all(select_query)
return response_success(type_list, "type get list success")
# 新增
@router.post("/add")
async def type_add(type:Type):
insert_query="""INSERT INTO types (typename,descr) VALUES(%s,%s)"""
insert_value=(type.typename,type.descr)
execute_query(insert_query,insert_value)
return response_success(data=type,message="type create success")
# 单条数据查询
@router.get("/list/search")
async def type_search(typename:str=Query(description="类型名称")):
select_query="SELECT id,typename,descr FROM types WHERE 1=1 "
params=[]
if typename:
select_query+="AND typename LIKE %s"
params.append(f"%{typename}%")
type_query=fetch_all(select_query,params=params,fetchall=True)
return response_success(data=type_query,message="type search success")
# 语录修改
@router.put("/update/{id}")
async def type_put(type:Type,id: str = Path(description="类型id")):
update_query = (
"UPDATE types SET typename=%s,descr=%s WHERE id=%s;"
)
update_data = (type.typename,type.descr,id)
execute_query(update_query, update_data)
return response_success("type update sucess")
# 语录删除
@router.delete("/delete/{id}")
async def type_del(id: str = Path(description="类型id")):
update_query = (
"DELETE FROM types WHERE id=%s;"
)
update_data = (id)
execute_query(update_query, update_data)
return response_success()
# 根据id查询语录
@router.get("/list/search/{id}")
async def type_search_id(id:str=Path(description="类型id")):
select_query="SELECT * FROM types WHERE id=%s"
type_query=fetch_one(select_query,(id,))
return response_success(data=type_query,message="type search success")
Loading…
Cancel
Save