<博客建立历程>阿里云建站6——进行Blog分页显示

时间:Nov. 1, 2016 分类:

目录:

Blog分页

我看了下往上说<a>可以指向一个url地址

把标题连接到对应的blog页面

[root@why templates]# vi blog.html
{% extends "blog_base.html" %}
{% block content %}
{% for blogs in blog_list %}
    <h2><a href="/blog/{{blogs.id}}">{{ blogs.title }}</a></h2>
    <p>{{ blogs.family }}</p>
    <p>{{ blogs.timestamp }}</p>
    <p>{{ blogs.body }}</p>
{% endfor%}
{% endblock %}

可以看到标题变成蓝色,就像许多年前的链接都是这么显示的。点击标题进去,就会看到下图的页面。

但是这个些界面还没有制定。

指定标题对应页面的url

[root@why blog]# vi urls.py
from django.conf.urls import url
from blog import views

urlpatterns = [
    url(r'^$', views.blog_index, name='index'),
    url(r'^(?P<blog_id>[0-9])/$', views.blog_bond, name='blog')    
]

正则表达式?Ppattern name是组,先指定,pattern是匹配规则

创建url对应的视图

[root@why blog]# vi views.py
#coding=utf-8
from django.shortcuts import render

# Create your views here.
from blog.models import BlogPost
def blog_index(request):
    blog_list = BlogPost.objects.all()
    dic_blog_list = {'blog_list': blog_list}
    return render(request, 'blog.html', dic_blog_list)
def blog_bond(request,blog_id=''):                  #获取url中传递来的blog_id
#    print(blog_id)
    blog_list_two = BlogPost.objects.get(id=blog_id)    #获取id和blog_id相同的blogpost内容
    return render(request,'blog_every.html',{'blog_list_two':blog_list_two})

创建视图展现界面

vi blog_every.html    
{% extends "blog_base.html" %}
{% block content %}
    <h2>{{ blog_list_two.title }}</h2>
    <p>{{ blog_list_two.family }}</p>
    <p>{{ blog_list_two.timestamp }}</p>
    <p>{{ blog_list_two.body }}</p>
    <h2><a href="/blog">返回</a></h2>
{% endblock %}

我们添加了一个返回页面指向了blog页面。点击标题进入链接地址。

这样就完成了Blog分页显示就实现了