前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 分页

python 分页

作者头像
py3study
发布2020-01-10 12:31:41
6900
发布2020-01-10 12:31:41
举报
文章被收录于专栏:python3

1、创建数据库信息

        class UserList(models.Model):             username = models.CharField(max_length=32)             age = models.IntegerField()

2、创建URL

        from app01 import views         urlpatterns = [             url(r'^admin/', admin.site.urls),             url(r'^user_list/', views.user_list),         ]

3、定义一个Pager类,处理页数换算

class Pager(object):     def __init__(self, current_page):         self.current_page = int(current_page)     @property     def start(self):         return (self.current_page - 1) * 10     @property     def end(self):         return self.current_page * 10     def page_str(self, all_item, base_url):         all_page, div = divmod(all_item, 10)         if div > 0:             all_page += 1         pager_list = []         if all_page <= 11:             start = 1             end = all_page         else:             if self.current_page <= 6:                 start = 1                 end = 12             else:                 start = self.current_page - 5                 end = self.current_page + 6                 if self.current_page + 6 > all_page:                     start = all_page - 11                     end = all_page + 1         for i in range(start, end):             if i == self.current_page:                 temp = '<a style="colo:red;font-size:26px;" href="%s%d">%d</a>' % (base_url, i, i,)             else:                 temp = '<a href="%s%d">%d</a>' % (base_url, i, i)             pager_list.append(temp)         # pre_next         if self.current_page > 1:             pre_page = '<a href="%s%d">pre_next</a>' % (base_url, self.current_page - 1)         else:             pre_page = '<a href="javascript:void(0);">pre_next</a>'         # next         if self.current_page >= all_page:             next_page = '<a href="javascript:void(0);">next</a>'         else:             next_page = '<a href="%s%d">next</a>' % (base_url, self.current_page + 1)         pager_list.insert(0, pre_page)         pager_list.append(next_page)         return mark_safe("".join(pager_list))

4、创建视图 ,并导入上面创建的Pager类  

        def user_list(request):             current_page=request.GET.get('page',1)             page_obj = page.Pager(current_page)             result = models.UserList.objects.all()[page_obj.start:page_obj.end]             all_item = models.UserList.objects.all().count()             pager_str = page_obj.page_str(all_item, "/user_list/?page=")             return  render(request, 'user_list.html', {'result': result, 'pager_str': pager_str})

5、创建前端user_list.html调用后台信息。

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title></title>     <style>         a{             padding: 5px;         }     </style> </head> <body>     <table>         {% for line in result %}         <tr>             <td>` line`.`username `</td>             <td>` line`.`age `</td>         </tr>         {% endfor %}     </table>     <div>         {{ pager_str|safe }}     </div> </body> </html>

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档