小白博客---个人首页

回顾index.html

用户登录成功后session里面将会有用户的所有信息,

利用这些信息生成新的标签

<ul class="nav navbar-nav navbar-right">
                {% if request.session.user_info %}
                    <li>
                        <a href="">{{ request.session.user_info.nickname }}</a>
                    </li>
                    {% if request.session.user_info.blog__site %}
                        <li>
                            <a href="/{{ request.session.user_info.blog__site }}.html">我的博客</a>   #新标签
                        </li>
                        <li>
                            <a href="/backend/index.html">管理</a>  #新街口,功能
                        </li>
                    {% endif %}


                    <li>
                        <a href="/logout.html">退出</a>
                    </li>
                {% else %}
                    <li><a href="/login.html">登录</a></li>
                    <li><a href="/register.html">注册</a></li>
                {% endif %}
            </ul>

点击我的博客,来到个人主页:

先看url:

我的博客标签携带个人的blog_site信息来访问

url(r'^(?P<site>\w+).html$',home.home),

views:

def home(request,site):    
    blog=models.Blog.objects.filter(site=site).select_related('user').first()   #通过site 查找数据库
    if not blog:
        return redirect('/')
    # print("blog",blog.bid)
    tag_list=[]
    tags=models.Tag.objects.filter(blog=blog.bid)
    print("tags",tags)

    for item in tags:
        tags_list = {}
        print("itemtitle",item.title)
        tags_list["nid"]=item.nid
        tags_list["name"]=item.title
        tags_list["count"]=item.article_set.filter(blog=blog).count()
        tag_list.append(tags_list)
    print("tag_list",tag_list)    #标签列表,和统计信息
    # tag_obj=models.Tag.objects.filter(blog=blog.bid)[0]
    # article_count=models.Article.objects.filter(tags=tag_obj,blog=blog)

    # print("tag_obj",tag_obj.article_set.filter(blog=blog))#2222
    # print("count",article_count)


    category_list=models.Category.objects.filter(blog=blog.bid)   #此博客的文章按日期年月分组,并统计
    date_list=models.Article.objects.raw(
        'select nid,count(nid) as num,strftime("%Y-%m",create_time) as ctime from repository_article where blog_id='+str(blog.bid)+' group by strftime("%Y-%m",create_time)'
    )
    article_list=models.Article.objects.filter(blog=blog.bid)
    return render(request,"home.html",{
        "blog":blog,
        "tag_list":tag_list,
        "category_list":category_list,
        "date_list":date_list,
        "article_list":article_list,

    })

 

home_layout:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap/css/bootstrap.css">
    <link rel="stylesheet" href="/static/plugins/font-awesome/css/font-awesome.css"/>
    <link rel="stylesheet" href="/static/theme/{{ blog.theme }}.css">
    {% block css %}{% endblock %}
</head>
<body>
<div class="pg-header">
    <div class="title">{{ blog.title }}</div>
    <div class="menu-list">
        <a class="menu-item" href="/">首页</a>
        <a class="menu-item" href="/{{ blog.site }}">个人首页</a>
        <a class="menu-item" href="/backend/index.html">管理</a>
    </div>
</div>
<div class="pg-body">
    <div class="body-menu">
        <div class="notice">
            <div class="notice-header">公告</div>
            <div class="notice-body">
                <ul>
                    <li>昵称:{{ blog.user.nickname }}</li>
                    <li>粉丝:{{ blog.user.fans.cout }}</li>
                    <li>邮箱:{{ blog.user.email }}</li>
                </ul>
            </div>
        </div>
        <div class="tags">
            <div class="tags-header">标签</div>
            <div class="tags-body">
                <ul>
                    {% for tag in tag_list %}
                        <li><a href="/{{ blog.site }}/tag/{{ tag.nid }}.html">{{ tag.name }}({{ tag.count }})</a></li>
                    {% endfor %}
                </ul>
            </div>
        </div>
        <div class="types">
            <div class="types-header">分类</div>
            <div class="types-body">
                <ul>
                    {% for tag in category_list %}
                        <li><a href="/{{ blog.site }}/category/{{ tag.nid }}.html">{{ tag.title }}({{ tag.article_set.count }})</a></li>
                    {% endfor %}
                </ul>
            </div>

        </div>
        <div class="dates">
            <div class="dates-header">创建时间</div>
            <div class="dates-body">
                <ul>
                    {% for tag in date_list %}
                        <li><a href="/{{ blog.site }}/date/{{ tag.ctime }}.html">{{ tag.ctime }}({{ tag.num }})</a></li>
                    {% endfor %}
                </ul>
            </div>
        </div>
    </div>
    <div class="body-content">
        {% block content %}
        {% endblock %}
    </div>
    {% block js %}
    {% endblock %}


</div>
</body>
</html>

home.html

{% extends "home-layout.html" %}
{% block content %}
    <div class="content-title"><h3>文章列表</h3></div>
    {% for row in article_list %}
        <div class="article">
            <div class="article-title">
                <a href="/{{ blog.site }}/{{ row.nid }}.html">{{ row.title }}</a>
            </div>
            <div class="article-summary">
                <a href="">{{ row.summary }}</a>
            </div>
            <div class="article-footer">
                <span style="margin-left: 0">{{ row.create_time|date:"Y-m-d H:i:s" }}</span>
                <span>{{ row.user.nickname }}</span>
                <span>阅读{{ row.read_count }}</span>
                <span>评论{{ row.comment_count }}</span>
                <a href="" style="margin-left: 10px">编辑</a>
            </div>
        </div>
        <hr>
    {% endfor %}
{% endblock %}

 

 

posted @ 2018-09-29 01:20  986428528  阅读(217)  评论(0)    收藏  举报