|
@ -1,18 +1,70 @@ |
|
|
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 |
|
|
|
|
|
|
|
|
router=APIRouter( |
|
|
|
|
|
|
|
|
router = APIRouter( |
|
|
prefix="/blogs", |
|
|
prefix="/blogs", |
|
|
tags=['博客管理'] |
|
|
tags=['博客管理'] |
|
|
) |
|
|
) |
|
|
@router.post('/add',response_model=BlogResponse) |
|
|
|
|
|
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)" |
|
|
|
|
|
blog_data=(blog.blogtitle,blog.blogcontent,blog.typeid,blog.descr) |
|
|
|
|
|
execute_query(select_query,blog_data) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.post('/add', response_model=ResponseMessage) |
|
|
|
|
|
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)" |
|
|
|
|
|
blog_data = (blog.blogtitle, blog.blogcontent, blog.typeid, blog.descr) |
|
|
|
|
|
execute_query(select_query, blog_data) |
|
|
|
|
|
return { |
|
|
|
|
|
'status': status.HTTP_200_OK, |
|
|
|
|
|
'message': 'blog create successfully!', |
|
|
|
|
|
'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 { |
|
|
return { |
|
|
'status':status.HTTP_200_OK, |
|
|
|
|
|
'message':'blog create successfully!', |
|
|
|
|
|
'blog':blog |
|
|
|
|
|
|
|
|
'status': status.HTTP_200_OK, |
|
|
|
|
|
'message': 'blog bytitle succuessfully!', |
|
|
|
|
|
'data': blog_list |
|
|
} |
|
|
} |