@ -1,4 +1,4 @@
from fastapi import Depends , APIRouter , status
from fastapi import Depends , APIRouter , status , Query
from internal.models import *
from internal.models import *
from dependencies import get_current_active_user , execute_query
from dependencies import get_current_active_user , execute_query
@ -6,7 +6,9 @@ router=APIRouter(
prefix = " /blogs " ,
prefix = " /blogs " ,
tags = [ ' 博客管理 ' ]
tags = [ ' 博客管理 ' ]
)
)
@router.post ( ' /add ' , response_model = BlogResponse )
@router.post ( ' /add ' , response_model = ResponseMessage )
async def blog_add ( blog : Blog , _ : User = Depends ( get_current_active_user ) ) :
async def blog_add ( blog : Blog , _ : User = Depends ( get_current_active_user ) ) :
select_query = " INSERT INTO blogs (blogtitle,blogcontent,typeid,descr) VALUES ( %s , %s , %s , %s ) "
select_query = " INSERT INTO blogs (blogtitle,blogcontent,typeid,descr) VALUES ( %s , %s , %s , %s ) "
blog_data = ( blog . blogtitle , blog . blogcontent , blog . typeid , blog . descr )
blog_data = ( blog . blogtitle , blog . blogcontent , blog . typeid , blog . descr )
@ -14,5 +16,55 @@ async def blog_add(blog:Blog,_:User=Depends(get_current_active_user)):
return {
return {
' status ' : status . HTTP_200_OK ,
' status ' : status . HTTP_200_OK ,
' message ' : ' blog create successfully! ' ,
' message ' : ' blog create successfully! ' ,
' blog ' : blog
' data ' : blog
}
@router.get ( " /list " )
async def blog_list ( ) :
select_query = " SELECT blogtitle, blogcontent, typename, create_at, update_at, blogs.descr FROM blogs LEFT JOIN `types` ON blogs.typeid = types.id ORDER BY create_at DESC; "
blog_list = execute_query ( select_query , fetchall = True )
return {
' status ' : status . HTTP_200_OK ,
' message ' : ' blog search succuessfully! ' ,
' data ' : blog_list
}
@router.get ( " /list/bytitle " )
async def blog_list_bytitle (
blogtitle : str = Query ( None , description = " 博客标题 " ) ,
typename : str = Query ( None , description = " 博客类型 " ) ,
# start_date:str=Query(None,description="开始时间"),
# end_date:str=Query(None,description="开始时间"),
) :
select_query = " SELECT blogtitle, blogcontent, typename, create_at, update_at, blogs.descr FROM blogs LEFT JOIN `types` ON blogs.typeid = types.id WHERE 1=1 "
params = [ ]
if blogtitle :
select_query + = " AND blogtitle LIKE %s "
params . append ( f " % {blogtitle} % " )
if typename :
select_query + = " AND typename LIKE %s "
params . append ( f " % {typename} % " )
# if start_date:
# select_query += " AND create_at >= %s"
# params.append(start_date)
# if end_date:
# select_query += " AND create_at <= %s"
# params.append(end_date)
# 添加排序条件
select_query + = " ORDER BY create_at DESC "
# 执行查询
blog_list = execute_query ( select_query , params = params , fetchall = True )
return {
' status ' : status . HTTP_200_OK ,
' message ' : ' blog bytitle succuessfully! ' ,
' data ' : blog_list
}
}