python flask实现分页的示例代码
作者:徐代龙 时间:2021-04-01 09:55:23
结合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
标签:flask,分页
0
投稿
猜你喜欢
MySQL高效分页解决方案集分享
2024-01-26 09:29:36
Extjs显示从数据库取出时间转换JSON后的出现问题
2024-01-18 12:52:13
JavaScript数组方法-系统性总结详解
2024-04-28 09:38:49
MySQL数据库的触发器和事务
2024-01-15 21:35:08
Pickle模块中的dump()和load()方法简介
2023-03-21 04:18:06
为什么MySQL不建议使用SELECT *
2024-01-26 21:29:44
Python3简单实现串口通信的方法
2022-03-10 03:39:53
Win10下python3.5和python2.7环境变量配置教程
2021-08-31 10:40:23
Oracle 10g各个帐号的访问权限、登录路径、监控状态命令查询等等
2024-01-24 22:46:05
准备SQL Server 2008透明数据加密
2009-01-22 14:18:00
SqlServer将数据库中的表复制到另一个数据库
2024-01-22 11:31:33
深入讨论Python函数的参数的默认值所引发的问题的原因
2022-08-03 00:54:31
MySQL语句执行顺序和编写顺序实例解析
2024-01-26 12:39:18
jquery 使用点滴函数代码
2011-05-21 16:12:00
如何使用SQL Mail收发和自动处理邮件?
2010-05-16 15:10:00
python中文件操作与异常的处理图文详解
2021-09-04 16:04:33
Mysql 索引该如何设计与优化
2024-01-21 19:22:19
jupyter notebook 写代码自动补全的实现
2023-04-14 03:04:00
Go语言操作数据库及其常规操作的示例代码
2024-01-14 07:05:46
Sql Server触发器的使用
2024-01-19 15:08:39