经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Django » 查看文章
Django1.11自带分页器paginator的使用方法
来源:jb51  时间:2019/11/1 8:34:06  对本文有异议

本文实例为大家分享了Django1.11自带分页器Django的具体使用方法,供大家参考,具体内容如下

接下来我编写一个 views ,名classify。
classify,将模拟请求购物网站的分类产品、并分页返回数据。完成如下任务:

1、接受两个参数,type,page。”type”:为请求的购物网站产品类别,如 0代表热门。1代表 家居<

2、分类找到产品。分页返回。

为了方便将要传递的参数直接加载URL中。如:127.0.0.1:8000/classify/0/1/   请求的是 “type” = 0 ,”page” = 1的数据。

URLS

  1. from django.conf.urls import url
  2. from taobao import views
  3.  
  4. urlpatterns = [
  5. url(r'^classify/(\d+)/(\d+)/$',views.classify),
  6. ]

models

“category” :分类,0.代表热门;

  1. class goods(models.Model):
  2. category = models.IntegerField('分类',default=0)
  3. goods_id = models.CharField('商品ID',max_length=10)
  4. goods_name = models.CharField('商品名',max_length=100,default='')
  5. goods_price = models.DecimalField('商品价格',max_digits=10,decimal_places=2)
  6. goods_Stock = models.IntegerField('商品库存',default=100)
  7. sales_Volume = models.IntegerField('销量',default=0)
  8. goods_introduce = models.CharField('商品简介',max_length=250,default='')
  9. def __str__(self):
  10. return self.goods_name

views

  1. from taobao.models import goods
  2.  
  3. from django.core.paginator import Paginator ,PageNotAnInteger ,EmptyPage
  4.  
  5. def classify(req,type,page):
  6. # 接收从url中传递的两个参数。
  7. context = {}
  8.  
  9. context['type'] = int(type)
  10. if type == '0':
  11. goods_list = goods.objects.order_by('sales_Volume').all()
  12. # 按销量排序
  13. else:
  14. goods_list = goods.objects.all().filter(category = int(type)).order_by('sales_Volume').all()
  15.  
  16. paginator = Paginator(goods_list,8)
  17. # 把商品分成 8 个一页。
  18.  
  19. try:
  20. # 尝试获取请求的页数的 产品信息
  21. goodss = paginator.page(int(page))
  22. #请求页数错误
  23. except PageNotAnInteger:
  24. goodss = paginator.page(1)
  25. except EmptyPage:
  26. goodss = paginator.page(paginator.num_pages)
  27.  
  28. context['goods'] = goodss
  29. return render(req,'classify.html',context)

html页面 classify.html

  1. {% block content %}
  2. <div style="margin-top: 20px">
  3. <div class="w1240">
  4. <div class="line100"></div>
  5. {# 根据type分类 显示不同图片汉字 #}
  6. <div class="icon"><img src="/static/images/type/{{ type }}.png"> <a>{% if type == 0 %}热门{% elif type == 1 %}美味餐厨{% elif type == 2 %}家纺家居{% endif %}</a> </div>
  7. </div>
  8. </div>
  9.  
  10. <div class="w1240">
  11. <ul class="m-itemList m-itemList-level2Category">
  12. {% for i in goods %}
  13. <li class="item">
  14. <div class="m-product">
  15. <span></span>
  16. <div class="hd">
  17. <a href="/taobao/goods/{{ i.goods_id }}" >
  18. <img src="/static/images/goods/{{ i.goods_id}}.jpg" class ="img">
  19. </a>
  20. </div>
  21.  
  22. <div class="bd">
  23. <a href="/taobao/goods/{{ i.goods_id }}" >
  24. <h4 class="name">{{ i.goods_name }}</h4>
  25. </a>
  26. <p style="color: #050505;font-weight: bold;text-align:center" >{{ i.goods_introduce }}</p>
  27. <p class="price">¥{{ i.goods_price }}</p>
  28. <hr>
  29. </div>
  30. </div>
  31. </li>
  32. {% endfor %}
  33.  
  34. </ul>
  35. <div style="padding-right:60px">
  36. <span style="float: right">
  37. <a href="/taobao/classify/{{ type }}/{{ goods.start_index }}" > 第一页 |  </a>
  38. {% if goods.has_previous %}
  39. <a href="/taobao/classify/{{ type }}/{{ goods.previous_page_number }}" > 上一页  </a>
  40. {% if goods.has_next%}
  41. <span> | </span>
  42. {% endif %}
  43. {% endif %}
  44. {% if goods.has_next %}
  45. <a href="/taobao/classify/{{ type }}/{{ goods.next_page_number }}" > 下一页  </a>
  46. {% endif %}
  47. <a href="/taobao/classify/{{ type }}/{{ goods.end_index }}" >| 末尾页 </a>
  48. </span>
  49. </div>
  50. </div>
  51. <div class="clear"></div>
  52.  
  53. {% endblock %}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号