Django 学习笔记之七 实现分页

接着上篇,在上篇的基础上实现网页数据分页显示

1、打开views.py,编辑如下

#coding:utf-8
from django.shortcuts import render,get_object_or_404
from blog.models import Post
from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger
# Create your views here.
def post_list(request):
object_list = Post.objects.all()
paginator = Paginator(object_list,3)#分页显示,每页3条记录
page = request.GET.get('page')
try:
posts = paginator.page(page)
except PageNotAnInteger:
posts = paginator.page(1)
except EmptyPage:
posts = paginator.page(paginator.num_pages)
return render(request,'blog/post/list.html',{'page':page,'posts':posts})

def post_detail(request,post):
post = get_object_or_404(Post,slug=post)
# post = Post.objects.get(slug=post)
return render(request,'blog/post/detail.html',{'post':post})

2、打开urls.py,编辑如下

from django.conf.urls import url,include
from django.contrib import admin
from blog.views import *


urlpatterns = [
# url(r'^blog/',blog_views.post_list,name='post_list'),
url(r'^blog/', post_list, name='post_list'),
url(r'^(?P<post>[-\w]+)/$',
post_detail, name='post_detail'),
url(r'^(?P<post_id>)/share/$',post_share,name='post_share'),
url(r'^admin/', admin.site.urls),
]


3、建立html网页

  在 blog目录下建立templates文件,在下面再建立文件夹 blog,在下面增加 base.html,在blog文件夹下建立post文件夹,在此文件夹建立list.html文件和

     pagination.html。目录下:

  

  

  base.html文件内容如下:

  

   

list.html 文件内容如下:


pagination.html文件内容如下:
 

  

4、在浏览器里输入:http://127.0.0.1:8000/blog/



点击“Next”

  这样就实现了简单的分页功能


posted on 2016-12-21 11:01  shaomine  阅读(421)  评论(0编辑  收藏  举报