python flask实现分页的示例代码
作者:徐代龙 发布时间:2021-04-01 09:55:23
标签:flask,分页
结合mysql数据库查询,实现分页效果
@user.route("/user_list",methods=['POST','GET'])
def user_list():
p = g.args.get("p", '') #页数
show_shouye_status = 0 #显示首页状态
if p =='':
p=1
else:
p=int(p)
if p > 1:
show_shouye_status = 1
mdb = db_session()
limit_start = (int(p)-1)*10#起始
sql ="select * from page_text limit {0},10".format(limit_start)
user_list=mdb.getMany(sql)
sql="select count(id) as total from page_text"
count = mdb.getOne(sql)['total'] #总记录
total = int(math.ceil(count/10.0)) #总页数
dic = get_page(total,p)
datas={
'user_list':user_list,
'p': int(p),
'total': total,
'show_shouye_status': show_shouye_status,
'dic_list': dic
}
return render_template("user_list.html",datas=datas)
其中get_page为封装的方法:
def get_page(total,p):
show_page = 5 # 显示的页码数
pageoffset = 2 # 偏移量
start = 1 #分页条开始
end = total #分页条结束
if total > show_page:
if p > pageoffset:
start = p - pageoffset
if total > p + pageoffset:
end = p + pageoffset
else:
end = total
else:
start = 1
if total > show_page:
end = show_page
else:
end = total
if p + pageoffset > total:
start = start - (p + pageoffset - end)
#用于模版中循环
dic = range(start, end + 1)
return dic
如果这里需要进行前端模板的拼接的话,可以需要以下代码(bootstrap)
<ul class="pagination">
{% if datas.show_shouye_status==1%}
<li class=''><a href='/user/user_list?p=1'>首页</a></li>
<li class=''><a href='/user/user_list?p={{datas.p-1}}'>上一页</a></li>
{%endif%}
{% for dic in datas.dic_list %}
{% if dic==datas.p%}
<li class="active"><a href="/user/user_list?p={{dic}}" rel="external nofollow" rel="external nofollow" >{{dic}}</a></li>
{%else%}
<li><a href="/user/user_list?p={{dic}}" rel="external nofollow" rel="external nofollow" >{{dic}}</a></li>
{%endif%}
{%endfor%}
{% if datas.p < datas.total%}
<li class=''><a href='/user/user_list?p={{datas.p+1}}'>下一页</a></li>
<li class=''><a href='/user/user_list?p={{datas.total}}'>尾页</a></li>
{%endif%}
共{{datas.total}}页
</ul>
bootstrap样式 http://edu.jb51.net/bootstrap/bootstrap-pagination.html
如果是返回给APP端的话,直接返回data数据就可以了。
来源:https://blog.csdn.net/xudailong_blog/article/details/80428013
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 前两天研究了一下textarea的直观行的换行规律,挺复杂啊:直观行怎样取不光要看cols大小,还要看网页编码方式。cols="3
- 如下所示:import matplotlib.pyplot as pltimport numpy as npdef readfile(fil
- 本文使用的代码book_dict = {"price": 500, "bookName": &quo
- 普通爬虫正常流程:数据来源分析发送请求获取数据解析数据保存数据环境介绍python 3.8pycharm 2021专业版【付费VIP完整版】
- WSGI协议首先弄清下面几个概念:WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python
- 本文实例为大家分享了Django文件上传与下载的具体代码,供大家参考,具体内容如下Django1.4首先是上传:#settings.pyME
- 看一个例子d={'test':1}d_test=dd_test['test']=2print d如果你在命令
- break 语句Python break语句,就像在C语言中,打破了最小封闭for或while循环。break语句用来终止循环语句,即循环条
- Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的
- JSON简介JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集
- python3中,list有个reverse函数,用来反转列表元素,但是如果想要反转部分元素呢?a = [1,2,3,4,5]a[0:3].
- 我们怎样才能了解用户需求呢?大家都知道可用性测试、调查问卷之类与用户进行沟通的途径,这些方法各有各的利弊,如果逐一分析的话,恐怕至少要分成三
- python中捕获键盘操作一共有两种方法第一种方法:使用pygame中event方法使用方式如下:使用键盘右键为例if event.type
- 本文实例讲述了Python实现可获取网易页面所有文本信息的网易网络爬虫功能。分享给大家供大家参考,具体如下:#coding=utf-8#--
- 安装paramiko后,看下面例子:import paramiko#设置ssh连接的远程主机地址和端口t=paramiko.Transpor
- 众所周知,程序在启动后,各个程序文件都会被加载到内存中,这样如果程序文本再次变化,对当前程序的运行没有影响,这对程序是一种保护。但是,对于像
- 服务器重新启动的情况当mysqld启动时,所有的授权表内容被读进存储器并且从那时开始生效。被服务器立即应用的情况用GRANT、REVOKE或
- networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图的算法。图是由顶点、边和可选的属性构成的数据结构,顶点表示数据
- 一组常用的弹出窗口用法,以下代码集合常用的弹出窗口用法。1、最基本的弹出窗口代码<SCRIPT LANGUAGE="
- 看了不少朋友的个人网站,有一个小问题,似乎很多朋友都忽略了,那就是版权声明的写法。虽然那只是一小行字,不过作为设计师也好,作为个人的爱好也好