1. 首页接口设计
1.请求方式
选项 | 方案 |
---|---|
请求方法 | GET |
请求地址 | /?cat_id=xxx&page_num=xxx&page_size=xxx |
2.请求参数
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
cat_id | string | 否 | 分类id |
page_num | string | 否 | 文章分页页码 |
page_size | string | 否 | 文章每页条目数 |
3.响应结果:HTML
字段 | 说明 |
---|---|
失败 | 响应错误提示 |
成功 | 展示数据 |
2. 查询分类数据并展示
1.查询分类文章数据并通过context传递给HTML
from home.models import ArticleCategory
from django.http import HttpResponseNotFound
class IndexView(View):
"""首页广告"""
def get(self, request):
"""提供首页广告界面"""
#?cat_id=xxx&page_num=xxx&page_size=xxx
cat_id=request.GET.get('cat_id',1)
#判断分类id
try:
category = ArticleCategory.objects.get(id=cat_id)
except ArticleCategory.DoesNotExist:
return HttpResponseNotFound('没有此分类')
# 获取博客分类信息
categories = ArticleCategory.objects.all()
context = {
'categories':categories,
'category':category
}
return render(request, 'index.html',context=context)
2.在index.html文件中使用模板语言展示分类数据
<ul class="nav navbar-nav">
{% for cat in categories %}
{% if cat.id == category.id %}
<li class="nav-item active">
<a class="nav-link mr-2" href="/?cat_id={{ cat.id }}">{{ cat.title }}</a>
</li>
{% else %}
<li class="nav-item">
<a class="nav-link mr-2" href="/?cat_id={{ cat.id }}">{{ cat.title }}</a>
</li>
{% endif %}
{% endfor %}
</ul>
效果展示: