|
@ -185,3 +185,28 @@ async def get_id_blog(request: Request, id: str = Path(description="博客id")): |
|
|
except json.JSONDecodeError: |
|
|
except json.JSONDecodeError: |
|
|
blog_list['labelnames'] = [] |
|
|
blog_list['labelnames'] = [] |
|
|
return response_success(data=blog_list, message="blog search success") |
|
|
return response_success(data=blog_list, message="blog search success") |
|
|
|
|
|
|
|
|
|
|
|
# 根据博客标签查询 |
|
|
|
|
|
@router.get("/search/label/") |
|
|
|
|
|
# @limiter.limit("5/minute") |
|
|
|
|
|
async def get_label_blog(request: Request, labelname: str = Query(description="博客标签")): |
|
|
|
|
|
select_query = """ |
|
|
|
|
|
SELECT blogs.id,blogs.blogtitle,blogs.blogcontent,blogs.readnum, |
|
|
|
|
|
blogs.create_at,blogs.imglink,blogs.wordcount,blogtypes.typename, |
|
|
|
|
|
JSON_ARRAYAGG(labels.labelname) AS labelnames FROM blogs |
|
|
|
|
|
LEFT JOIN blog_label ON blog_label.blogid = blogs.id |
|
|
|
|
|
LEFT JOIN labels ON labels.id = blog_label.labelid |
|
|
|
|
|
LEFT JOIN blogtypes ON blogtypes.id = blogs.typeid |
|
|
|
|
|
WHERE blogs.id IN ( |
|
|
|
|
|
SELECT blogs.id FROM blogs |
|
|
|
|
|
LEFT JOIN blog_label ON blog_label.blogid = blogs.id |
|
|
|
|
|
LEFT JOIN labels ON labels.id = blog_label.labelid |
|
|
|
|
|
WHERE labels.labelname = %s |
|
|
|
|
|
) |
|
|
|
|
|
GROUP BY blogs.id, blogs.blogtitle, blogs.blogcontent, blogs.create_at, blogs.imglink,blogs.wordcount, blogtypes.typename |
|
|
|
|
|
ORDER BY blogs.create_at DESC; |
|
|
|
|
|
""" |
|
|
|
|
|
label_blog_list = fetch_all(select_query, (labelname,)) |
|
|
|
|
|
|
|
|
|
|
|
return response_success(data=label_blog_list, message="blog search success") |
|
|
|
|
|
|