效果图:
image.png
使用栅格样式:
修改blog\_list.html

{# 删除和base中重复的内容,留下独有的内容,然后分别填充到下面的两个block中 #}

  

  

{# 这是页面标题 #}

{% extends 'base.html' %}  {# 导入base.html中的内容 #}

{% block title %}  {# 用于填充title #}

    刘子君的博客  {# 这里因为之前title被包起来了,所以直接用变量即可 #}

{% endblock %}

<hr>

{# 这是页面内容 #}

{% block content %}

***    <div class="container">

        <div class="row">

            <div class="col-md-8">

                        {% for blog in blogs %}

{#        <a href="{ % url 'blog\detail' blog.pk % }">#}

            <a href="{% url 'blog\detail' blog.pk %}">

            <h3>{{blog.title}}</h3>

        </a>

{#            管道符表示过滤,这句话意思是对blogcontent中的内容过滤,只剩30字符显示,这里不知为啥起作用了但pycharm识别为错误#}

            <p>{{ blog.content|truncatechars:30 }}</p>

        {% empty %}

            <p>----- 敬请期待,暂无博文 -----</p>

    {% endfor %}

        {#        <p>一共有{{ blogs|length }}篇博文</p> {{ blogs\count }} {#        用于统计blogs中又多少条博文#}

        <p>一共有{{ blogs|length }}篇博文</p>

            </div>

        <div class="col-md-4">  {# 博客分类 #}

            <h4>博客分类</h4>

            <ul>

                {% for blog\type in blog\types %}

                    <li><a href="{% url 'blogs\with\type' blog\type.pk %}">{{ blog\type.type\name }}</a></li>

                {% empty %}  {# 如果没有 #}

                <li>暂无分类</li>

                {% endfor %}

            </ul>

        </div>

        </div>

    </div>***

  

{% endblock %}

因为blog\_list.html需要用到app(blog)里面的views.py,一般要将与app关系紧密的文件放在app下面,所以这里要将mysite/templates/blog剪切到mysite/blog/templates下面,也能避免和后面app的静态文件重名。

然后将blog\_type通过视图函数传入前端:
image.png
现在的效果如下:
image.png
没有很明显的边界,用面板增加一个边界:
image.png
效果如下:

不想要前面的点,增加新内容:
image.png
同理修改博客列表的content:
image.png
效果如图:
image.png
另外想要将图中的一共有...放在博客列表后面,修改如下:
image.png
效果如下:
image.png
另外把原来的md改成sm:
image.png
image.png
因为md对于小屏幕不太友好,
image.png
而sm会自动适应屏幕大小而且能适应小屏幕
image.png
在修改:
image.png
image.png
修改上面的
image.png
为我们的css样式要放到css文件中,所以如下:
image.png
然后在static中创建blog.css文件设置样式:
image.png
然后到blog\_list.html中引入blog.css文件
image.png
将blog.css文件放在blog下面的static/blog中

修改blog\_list.html中的link:
image.png
然后将每块布局包裹在各自的div中,并微调各处内容:

{# 删除和base中重复的内容,留下独有的内容,然后分别填充到下面的两个block中 #}

{# 这是页面标题 #}

{% extends 'base.html' %}   {# 导入base.html中的内容 #}

{% block title %}刘子君的博客{% endblock %}  {# 用于填充title #}

{% block nav\_blog\_active %}active{% endblock %}

  

  

{# 引入blog.css文件 #}

{% load static %}

{% block header\_extends %}

    <link rel="stylesheet" href="{% static 'blog/blog.css' %}">

{% endblock %}

  

  

{# 页面内容 #}

{% block content %}

    <div class="container">

        <div class="row">

            <div class="col-xs-12 col-sm-8 col-md-9 col-lg-10">

                <div class="panel panel-default">

                    <div class="panel-heading">{% block blog\_list\_title %}博客列表(一共有{{ blogs|length }}篇博客){% endblock %}</div>

                   {# <p>一共有{{ blogs|length }}篇博文</p> {{ blogs\_count }} {#用于统计blogs中又多少条博文#}

                    <div class="panel-body">

                        {% for blog in blogs %}

                            <div class="blog">

                                <h3><a href="{% url 'blog\_detail' blog.pk %}">{{ blog.title }}</a></h3>

                                <p class="blog-info">

                                    <span class="glyphicon glyphicon-tag"></span><a href="{% url 'blogs\_with\_type' blog.blog\_type.pk %}">{{ blog.blog\_type }}</a>

                                    <span class="glyphicon glyphicon-time"></span>{{ blog.created\_time|date:"Y-m-d" }}

                                </p>

                                <p>{{ blog.content|truncatechars:30 }}</p>

                            </div>

                        {#管道符表示过滤,这句话意思是对blogcontent中的内容过滤,只剩30字符显示,这里不知为啥起作用了但pycharm识别为错误#}

                        {% empty %}

                            <div class="blog">

                                <h3>-- 敬请期待,暂无博文 --</h3>

                            </div>

                        {% endfor %}

                    </div>

                </div>

            </div>

            <div class="hidden-xs col-sm-4 col-md-3 col-lg-2">

                <div class="panel panel-default">

                    <div class="panel-heading">博客分类</div>

                    <div class="panel-body">

                        <ul class="blog-types">

                            {% for blog\_type in blog\_types %}

                                <li><a href="{% url 'blogs\_with\_type' blog\_type.pk %}">{{ blog\_type.type\_name }}</a></li>

                            {% empty %}

                                <li>暂无分类</li>

                            {% endfor %}

                        </ul>

                    </div>

                </div>

            </div>

        </div>

    </div>

{% endblock %}

增加对应的样式在blog.css中:
image.png
修改blog\_with\_type.html代码:

{% extends 'blog/blog\_list.html' %}

{% block title %}{{ blog\_type.type\_name }}{% endblock %}

  

  

{% block blog\_list\_title %}

    分类:{{ blog\_type.type\_name }}(一共有{{ blogs|length }}篇博客)

    <a href="{% url 'blog\_list' %}">查看全部博客</a>

{% endblock %}

对应的修改view.py中blog\_with\_type下面的blog\_types:
image.png
修改blog\_detail.html中的代码:

{# 删除和base中重复的内容,留下独有的内容,然后分别填充到下面的两个block中 #}

  

  

{# 这是页面标题 #}

{% extends 'base.html' %}  {# 导入base.html中的内容 #}

{% block title %}  {# 用于填充title #}

    {{ blog.title }}  {# 这里因为之前title被包起来了,所以直接用变量即可 #}

{% endblock %}

  

  

{% load staticf %}

{% block header\_extends %}

    <link rel="stylesheet" href="{% static 'blog/blog.css' %}">

{% endblock %}

  

  

{# 页面内容 #}

{% block content %}

    <div class="container">

        <div class="row">

            <div class="col-xs-10 col-xs-offset-1">

                <h3>{{ blog.title }}</h3>

                <ul class="blog-info-description">

                    <li>作者:{{ blog.author }}</li>

                    <li>分类:<a href="{% url 'blogs\_with\_type' blog.blog\_type.pk %}">{{ blog.blog\_type }}</a></li>

                    <li>发表日期:{{ blog.created\_time|date:"Y-m-d H:n:s" }}</li>

                </ul>

                <div class="blog-content">{{ blog.content }}</div>

            </div>

        </div>

    </div>

{% endblock %}

再次修改blog.css文件(上面一起粘了,这里就不重复了)

对于里面遇到的bug都写在了madpecker中了,每天都有新的bug出现...


笨小孩
20 声望3 粉丝

你,要怎样度过这一生?有的人二十岁已经死了,有的人七十岁还在发现生命的可能,有人终其一生,不知道自己要的是什么;有人简单执拗,终其一生;忠于自我未必有结果,坚持努力也不一定换来成功,但有天,回望过...