上一篇文章实现首页右方公共模块分类信息,近期博客功能数据获取并进行展示。本篇继续对右方归档数据进行获取并且展示。
先看下静态页面归档数据的展示效果图:
效果图_1.png归档信息通过博客的发布时间进行了归档,这里先在 Sqlyog 中使用 sql 语句预查询查看查询的数据情况:
SELECT created,COUNT('*') c FROM t_post GROUP BY DATE_FORMAT(created,'%Y-%m') ORDER BY c DESC,created DESC;
上述语句,通过年月数据进行归档,归档后并按照 数量、创建时间优先级的顺序进行排序。
欢迎关注公众号 【python面面观】,在聊天对话框回复「博客」获取源码地址以及其他 python 相关知识。
执行 sql 查询语句可以查询到如下归档的数据:
效果图_2.png按照 sql 查询方法,在 post/mycontextprocessor.py 中获取相关归档数据。
def getCategory(request):
# 获取分类信息 根据 count的降序排序
categoryList = Post.objects.values('category__cname', 'category').annotate(c=Count('*')).order_by('-c')
# 近期文章
recentBlogs = Post.objects.all().order_by('-created')[:3]
# 获取归档数据,根据日期进行归档
from django.db import connection
cursor = connection.cursor()
cursor.execute("SELECT created,COUNT('*') c FROM t_post GROUP BY DATE_FORMAT(created,'%Y-%m') ORDER BY c DESC,created DESC;")
guidangBlogs = cursor.fetchall()
return {'category_list': categoryList, 'recent_blog': recentBlogs, 'guidang_blog': guidangBlogs}
获取到了归档数据,同样在 right.html 中进行归档数据的展示:
<!--归档-->
<div class="widget-wrap">
<h3 class="widget-title">归档</h3>
<div class="widget">
<ul class="archive-list">
{% for guidangItem in guidang_blog %}
<li class="archive-list-item">
<a class="archive-list-link"
href="/archive/{{ guidangItem.0 | date:'Y' }}/{{ guidangItem.0 | date:'m' }}">{{ guidangItem.0 | date:'Y年m月' }}</a>
<span class="archive-list-count">{{ guidangItem.1 }}</span>
</li>
{% endfor %}
</ul>
</div>
</div>
运行程序,查看显示效果;
效果图_3.png如展示效果所示,首页已经将归档模块按照获取数据进行展示。
网友评论