zoukankan      html  css  js  c++  java
  • Django+Bootstrap+Mysql 搭建个人博客(四)

    4.1.博客分类

    (1)blog_tags.py

    @register.simple_tag
    def get_categories():
        return Category.objects.all()
    
    @register.simple_tag
    def get_entry_count_of_category(category_name):
        return Entry.objects.filter(category__name=category_name).count()

    (2)right_side_bar.html

     <div class="row">
        <div class="widget">
            <h3>分类:</h3>
            {% get_categories as category_list %}
            <ul class="list-group">
            {% for category in category_list %}
                <li class="list-group-item">
                    <a href="{% url 'blog:blog_category' category.id %}">{{ category.name }}</a>
                    <span class="badge">{% get_entry_count_of_category category.name %}</span>
                </li>
            {% endfor %}
            </ul>
        </div>
    </div>

    4.2.博客归档

    (1)urls.py

    url(r'^archives/(?P<year>[0-9]+)/(?P<month>[0-9]+)$', views.archives, name='blog_archives'),

    (2)views.py

    def archives(request, year, month):
        entries = models.Entry.objects.filter(created_time__year=year, created_time__month=month)
        page = request.GET.get('page', 1)
        entry_list, paginator = make_paginator(entries, page)
        page_data = pagination_data(paginator, page)
        return render(request, 'blog/index.html', locals())

    (3)blog_tags.py

    @register.simple_tag
    def archives():
        return Entry.objects.dates('created_time', 'month', order='DESC')
    
    @register.simple_tag
    def get_entry_count_of_date(year, month):
        return Entry.objects.filter(created_time__year=year, created_time__month=month).count()

    (4)right_side_bar.html

    <div class="row">
        <div class="widget">
            <h3>归档:</h3>
            {% archives as date_list %}
            <ul class="list-group">
            {% for date in date_list %}
                <li class="list-group-item">
                    <a href="{% url 'blog:blog_archives' date.year date.month %}">
                        <i class="glyphicon glyphicon-chevron-right"></i>
                        {{ date.year }} 年 {{ date.month }} 月
                        <span class="badge">{% get_entry_count_of_date date.year date.month %}</span>
                    </a>
    
                </li>
            {% endfor %}
            </ul>
        </div>
    </div>

    4.3.标签云

    (1)blog_tags.py

    @register.simple_tag
    def get_tags():
        return Tag.objects.all()

    (2)right_side_bar.html

    <div class="row">
        <div class="widget" >
            <h3>标签云:</h3>
            {% get_tags as tag_list %}
            {% for tag in tag_list %}
                    <a href="{% url 'blog:blog_tag' tag.id %}" style="font-size: 20px;">
                        <span style="padding: 5px;" class="label {% cycle 'label-default' 'label-primary' 'label-success' 'label-info' 'label-warning' 'label-danger' %}">{{ tag.name }}</span>
                    </a>&nbsp;
            {% endfor %}
        </div>
    </div>

    4.4.RSS订阅

    (1)blog/feed.py

    from django.contrib.syndication.views import Feed
    # from django.urls import reverse
    from .models import Entry
    
    
    class LatestEntriesFeed(Feed):
        title = "Zhang_derek的博客"
        link = "/siteblogs/"
        description = "zhang_derek的最新博客文章!"
    
        def items(self):
            return Entry.objects.order_by('-created_time')[:5]
    
        def item_title(self, item):
            return item.title
    
        def item_description(self, item):
            return item.abstract

    (2)website/urls.py

    from blog.feed import LatestEntriesFeed
    
    
    url(r'^latest/feed/$', LatestEntriesFeed()),    #RSS订阅

    (3)right_side_bar.html

    <div class="row">
        <div class="rss">
            <a href="/latest/feed/"><i class="glyphicon glyphicon-plus"></i>RSS 订阅</a>
        </div>
    </div>
     
     
     
  • 相关阅读:
    Release COM Objects in AE
    图像相关系数
    Geoprocessor edit the featureclasses in memmory
    NetLogo AStar path finding
    IDL+C#三种调用方式
    Dictionary is not like a array
    C# DataGridView 禁止列排序
    工作总结
    (转)常见数据库设计(1)——字典数据
    碎碎念(3)
  • 原文地址:https://www.cnblogs.com/gaidy/p/12106373.html
Copyright © 2011-2022 走看看