美文网首页
Django 搭建博客项目(7)-展示归档信息

Django 搭建博客项目(7)-展示归档信息

作者: 零星瓢虫 | 来源:发表于2020-08-26 18:59 被阅读0次

上一篇文章实现首页右方公共模块分类信息,近期博客功能数据获取并进行展示。本篇继续对右方归档数据进行获取并且展示。

先看下静态页面归档数据的展示效果图:

效果图_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

如展示效果所示,首页已经将归档模块按照获取数据进行展示。

相关文章

网友评论

      本文标题:Django 搭建博客项目(7)-展示归档信息

      本文链接:https://www.haomeiwen.com/subject/fwjkrktx.html