如何自定义设置Model模型记录的分页展示条数
自定义Model列表单页展示条数的实现方案
1. 新增配置存储字段
- 若为全局统一配置:在系统配置表中新增键为
model_list_page_size的整数字段,默认值设为10,支持管理员后台修改。 - 若为用户个性化配置:在用户信息表新增
custom_model_page_size的整数字段,默认值10,每个用户可单独设置自己的展示规则。
2. 调整后端分页逻辑
将原来硬编码的分页条数替换为从配置字段读取,同时增加异常兜底避免查询报错,参考示例代码(Python SQLAlchemy 场景):
# 从配置中读取单页条数,非法值默认兜底为10 custom_page_size = get_config("model_list_page_size") page_size = custom_page_size if (type(custom_page_size) == int and custom_page_size > 0) else 10 # 分页查询逻辑保持不变,自动适配新的单页条数 current_page = request.GET.get("page", 1) offset = (current_page - 1) * page_size result_data = Model.query.offset(offset).limit(page_size).all() total_count = Model.query.count()
以你提到的20条数据的场景为例:当配置为10条/页时,offset=0查第一页10条,offset=10查第二页10条;如果配置改成5条/页,会自动分成4页展示,不需要额外修改其他逻辑。
3. 前端适配调整
- 在设置页面新增单页展示条数的配置入口,可选下拉选择(5/10/20/50)或者数字输入框,配置修改后提交更新到后端存储的配置字段即可。
- 前端分页组件的总页数计算公式调整为
Math.ceil(总条数 / 单页展示条数),不要硬编码页数参数。
内容的提问来源于stack exchange,提问作者CbrRRider
相关产品推荐
相关产品推荐

