django分页分析
2019-06-11 20:12
1331 查看
1. 将movie.sql 导入 当前数据库中。 2. 创建新应用 movieapp python manage.py startapp movieapp 3. 将新应用注册到INSTALLED_APPS中 INSTALLED_APPS = [ ... 'stuapp', 'movieapp' ] 4.将数据库表逆向生成模型类 python manage.py inspectdb>movieapp/models.py 5.显示影片页面 GET movies/ 配置路由 创建视图函数 6.分页 MySQL分页语句: select * from t_movie limit 0,10; a[start:end] 设定: num:当前页码数 size:每页显示记录数 start end 1 2 0 2 2 2 2 4 3 2 4 6 n s (n-1)*s n*s 2.Django分页 1.访问路径:http://127.0.0.1:8000/movies/page/ 2.配置路由 3.创建视图函数 def pageMovieView(request): """利用Django分页实现影片展示""" #0.获取当前页码数 num = request.GET.get('num',1) num = int(num) #1.获取所有的影片信息 tmovies = TMovie.objects.all().order_by('id') #2.创建django分页对象 page_obj = Paginator(object_list=tmovies,per_page=12) # Paginator(tmovies,12) #3.获取当前页的数据 try: per_page_list = page_obj.page(num) except EmptyPage: per_page_list = page_obj.page(1) return render(request,'movie.html',{'movies':per_page_list}) 4.修改movie.html页面信息 <p> {% if movies.has_previous %} <a href="/movies/page/?num={{ movies.previous_page_number }}">上一页</a> {% endif %} {% if movies.has_next %}  <a href="/movies/page/?num={{ movies.next_page_number }}">下一页</a> {% endif %}  </p> 5.增加每页页码显示的功能 思路: 每页显示10个页码 当前页码数显示在中间位置(前5后4) 获取每页显示的起始页码数 start 获取每页显示的结束页码数 end start end num 1 10 1 1 10 5 1 10 6 2 11 7 3 12 8 n-(10/2) start+9 n page_num_list = [start,end] = range(start,end+1) for page in page_num_list: 核心代码: #4.获取每页页码数的列表 #start:每页起始页码数 #end:每页结束页码数 start = num - math.ceil(10/2) if start < 1: start = 1 end = start + 9 if end > page_obj.num_pages: end = page_obj.num_pages if end < 10: start = 1 else: start = end - 9 #获取每页显示页码数列表 page_num_list = range(start,end+1) Django分页涉及方法: #创建分页器对象 page_obj = Paginator(object_list=tmovies,per_page=12) #Paginator的方法 per_page_obj = page_obj.page(num) ---> 获取当前页的数据 page_obj.num_pages --->获取总页数 #Page 对象的方法 #返回是否有上一页(True/False) per_page_obj.has_previous() #返回是否有下一页(True/False) per_page_obj.has_next() #返回上一页的页码数 per_page_obj.previous_page_number() #返回下一页的页码数 per_page_obj.next_page_number() #获取当前页码数 per_page_obj.number() #异常对象 EmptyPage
相关文章推荐
- 对比分析Django的Q查询及AngularJS的Datatables分页插件
- Django普通视图函数和基于类视图的分页
- Django的分页 Paginator
- .Text分页技术(1)分页的存储过程分析
- Django 利用 Pagination 简单分页
- django自带分页代码
- django-pure-pagination 分页插件
- [转]关于SQL分页存储过程的分析
- yii分页组件用法实例分析
- mssql分页原理及效率分析
- Django中实现分页
- MYSQL千万级测试1亿数据的分页分析测试(顶)
- Django之分页显示文章
- 三种SQL分页方法性能分析
- 对于Oracle中分页排序查询语句执行效率的比较分析
- django 分页例子
- Django之自定义分页代码简单实现
- Django源码分析之执行入口
- [Django架构流程分析]请求处理机制其三:view层与模板解析
- Django源代码阅读分析-1:命令行选项