This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
fromhaystack.queryimportSearchQuerySet
# hz代码注释
fromhaystack.queryimportSearchQuerySet
fromblog.modelsimportArticle,Category
classBlogApi:
"""
博客API类,提供文章搜索、分类获取等相关功能
Attributes:
searchqueryset (SearchQuerySet): 搜索查询集对象
__max_takecount__ (int): 最大返回记录数,默认为8
"""
def__init__(self):
"""
初始化BlogApi实例
"""
self.searchqueryset=SearchQuerySet()
self.searchqueryset.auto_query('')
self.__max_takecount__=8
defsearch_articles(self,query):
"""
根据查询关键字搜索文章
Args:
query (str): 搜索关键字
Returns:
list: 匹配的文章列表,最多返回__max_takecount__条记录
"""
sqs=self.searchqueryset.auto_query(query)
sqs=sqs.load_all()
returnsqs[:self.__max_takecount__]
defget_category_lists(self):
"""
获取所有文章分类列表
Returns:
QuerySet: 所有分类对象的查询集
"""
returnCategory.objects.all()
defget_category_articles(self,categoryname):
"""
根据分类名称获取该分类下的文章列表
Args:
categoryname (str): 分类名称
Returns:
QuerySet or None: 指定分类下的文章查询集,最多返回__max_takecount__条记录,