作者:郭佳明
之前写CC的测试平台的时候,里面有一个机器管理列表信息,使用表格来展示的,数据量大概有240多条,需要用到分页。之前没有接触bootstrap table,而是网上随便找了一个表格样式,嵌套了进去。后面做分页又使用了django paginator。做好之后发现,其实bootstrap table也不完全适用我的场景,稍微心里好受点。。
如果想要看bootstrap table做表格以及分页的就网上找资料吧,挺多的。
django paginator也是,现在我主要是再次分享一下我的使用经验。
使用简单,就两步操作如下:
1.django后台页面views文件引用了三个django paginator的包,然后主要逻辑按照如下格式对 all_agents变量做一下分页处理打包成agents变量
from django.core.paginator import Paginator from django.core.paginator import PageNotAnInteger from django.core.paginator import EmptyPage def agentsmanager(request): #前台页面访问的时候调用此方法 page_num=1 #这里默认查询page_num=1第一页的数据 if 'page' in request.GET: page_num= request.GET['page'] ..... #省略逻辑计算查询结果all_agents paginator = Paginator(all_agents, 10) #默认每页展示10条数据 try: context['agents'] = paginator.page(page_num) except PageNotAnInteger: context['agents'] = paginator.page(1) except EmptyPage: context['agents'] = paginator.page(paginator.num_pages) return render(request, 'agentsmanager.html', context)
2 渲染agentsmanager.html页面的时候,参数是context,里面包含agents的信息。for循环展示表格内容之后,按照如下格式,对agents变量做一下分页判断
<table> {% for agent in agents %} <tr> <td>{{ agent.0 }}td> <td>{{ agent.1 }}td> #这里是渲染表格的内容 <td>{{ agent.2 }}td> tr> {% endfor %} table> {% if agents.has_previous %} #这个是分页的判断 <a class='paginator' title='上一页' href='?page={{ agents.previous_page_number }}'><span><<span>a> {% endif %} {% for page in agents.paginator.page_range %} {% if page == agents.number %} <a class='paginator_current' title='当前页:{{ page }}'><span>{{ page }}span>a> {% else %} <a class='paginator' href='?page={{ page }}' title='{{ page }}'><span>{{ page }}span>a> {% endif %} {% endfor %} {% if agents.has_next %} <a class='paginator' title='下一页' href='?page={{ agents.next_page_number }}'><span>>>span>a> {% endif %}
两步就结束了 因为是测试工具,功能OK就可以了。 当然如果想要做更加好看点,可以上网找点其他资料,或者可以使用bootstrap做分页
原创声明,本文系作者授权云+社区发表,未经许可,不得转载。
如有侵权,请联系 yunjia_community@tencent.com 删除。
我来说两句