栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python / flask sqlAlchemy 分页查询(paginate)实现举例,分页方式使用不当报404错误

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python / flask sqlAlchemy 分页查询(paginate)实现举例,分页方式使用不当报404错误

from sqlalchemy.orm import aliased
from sqlalchemy import func
    
    #方式一,db.session.query查询
    #Order、Emp、Cust需要自定义,常规自db.Model
    
    Emp1 = aliased(Emp) #关联查询,非必须
    page_size = 20
    page_index = 1 #start from 1, not 0
    #查询总行数
    record_count =db.session.query(func.count(Order.id)).scalar()
    #查询指定分页的数据
    data_items = dbconn.session.query(Order, Emp1).outerjoin(Emp1, Emp1.id == Order.emp_id).limit(page_size).offset((page_index - 1) * page_size).all()
    #分页信息设置,PageInfo需要自定义
    page_info=PageInfo()
    page_info.page = page_index                         #当前页码
    page_info.pages = int(record_count / page_size + 1) #页数
    page_info.total = record_count                      #总行数
    page_info.has_prev = page_index > 1                 #不是第一页时,允许前翻
    page_info.has_next = page_index >= 1 and page_index < page_info.pages   #不是最后一页时,允许后翻
    page_info.size = page_size                          #每页行数
    
    page_num_list=[]#页码列表
    for i in range(page_info.pages):
        page_num_list.append(i+1)
    page_info.iter_pages = page_num_list
    
    #查询结果数据在 data_items中
    #
    #
    
    
    #----------------- db.session.query查询模式结束 ------------ 
    
    #--------- db.Model对象.query查询模式

    
    page_size = 20
    page_index = 1 #start from 1, not 0
    data_items_page = Cust.query.paginate(page_index, page_size, error_out=True)

    page_info=PageInfo()
    page_info.page = data_items_page.page
    page_info.pages = data_items_page.pages
    page_info.total = data_items_page.total
    page_info.has_prev = data_items_page.has_prev
    page_info.has_next = data_items_page.has_next
    page_info.size = page_size
    
    page_num_list=[]#页码列表
    p_iter=data_items_page.iter_pages()
    for i in p_iter:
        page_num_list.append(i)
    page_info.iter_pages = page_num_list
    
    #查询结果数据在 data_items_page.items中
    #
    #---------- 结束 ------------------

参考:(76条消息) sqlalchemy和flask-sqlalchemy的几种分页方法_aobian2884的博客-CSDN博客

参考:sqlAlchemy的查询分页和获取总条数_qq5a166ea6303da的技术博客_51CTO博客

本文谢绝任何形式的转载,感谢关注。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/924016.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号