python 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)
上一页
{%endif%}
{% for dic in datas.dic_list %}
{% if dic==datas.p%}
{{dic}}
{%else%}
{{dic}}
{%endif%}
{%endfor%}
{% if datas.p < datas.total%}
下一页
尾页
{%endif%}
共{{datas.total}}页
bootstrap样式 http://edu.jb51.net/bootstrap/bootstrap-pagination.html
如果是返回给APP端的话,直接返回data数据就可以了。
您可能感兴趣的文章:python web框架中实现原生分页Python Django实现layui风格+django分页功能的例子Python Django 简
您可能感兴趣的文章
单分页的实现代码解析Python Django 封装分页成通用的模块详解详解Python odoo中嵌入html简单的分页功能python 实现分
页显示从es中获取的数据方法python实现分页效果Python利用flask sqlalchemy实现分页效果python flask实现分页效果
Python+Selenium自动化实现分页(pagination)处理Python的Flask框架中实现分页功能的教程python使用BeautifulSoup分
页网页中超链接的方法python Django框架实现web端分页呈现数据