实现多参数分页查询列表!实战攻略!
2024-01-22 00:31:39
一、前言
大家好,我是bug菌 。
持续创作,加速成长!
这是我参与「掘金日新计划 · 6 月更文挑战」的第17天 ,点击查看活动详情 。
接下来的这几期,bug菌想跟大家分享一下自己昨天刚接到一个临时的需求,热乎着 。
需求很简单,需要实现一个多参数的分页查询列表 。
这个需求看似简单,但是涉及到的知识点却不少 。
今天我就跟大家分享一下实现这个需求的实战经验 。
希望对大家有所帮助 。
今天的内容主要分为以下几个部分 :
- 参数接收
- 数据查询
- 分页处理
- 页面展示
- 总结
二、参数接收
首先,我们先来看一下参数接收 。
本次的需求中,需要支持多参数查询,因此我们首先需要将这些参数接收过来 。
这里我主要用到的是Request对象来接收参数 。
Request对象是一个内置的对象,它包含了请求的所有信息 。
我们可以通过Request对象的args属性来获取参数 。
from flask import request
# 获取参数
args = request.args
# 获取参数值
name = args.get('name')
age = args.get('age')
# 判断参数值是否存在
if name is None or age is None:
return '参数不完整'
这样我们就可以获取到前端传递过来的参数了 。
需要注意的是,如果参数值不存在,那么我们需要返回一个错误信息 。
否则,程序会报错 。
三、数据查询
接下来,我们来看一下数据查询 。
我们需要根据前端传递过来的参数来查询数据 。
这里我主要用到的是SQLAlchemy来查询数据 。
SQLAlchemy是一个非常强大的ORM框架,它可以让我们很方便地进行数据查询 。
from sqlalchemy import and_
# 创建查询对象
query = session.query(User)
# 添加查询条件
query = query.filter(and_(User.name == name, User.age == age))
# 执行查询
users = query.all()
这样我们就查询到了满足条件的数据 。
需要注意的是,这里我用到了and_函数来组合查询条件 。
and_函数可以让我们将多个查询条件组合成一个查询条件 。
这样可以提高查询的效率 。
四、分页处理
接下来,我们来看一下分页处理 。
分页处理是指将数据分成多个页面,然后逐页显示 。
这里我主要用到的是Flask-SQLAlchemy的paginate_results方法来进行分页处理 。
from flask_sqlalchemy import Pagination
# 创建分页对象
pagination = query.paginate(page=1, per_page=10)
# 获取当前页的数据
users = pagination.items
# 获取总页数
total_pages = pagination.pages
# 获取当前页数
current_page = pagination.page
# 获取每页的数据量
per_page = pagination.per_page
这样我们就完成了分页处理 。
需要注意的是,这里我将page参数设置为1,per_page参数设置为10 。
page参数表示当前页数,per_page参数表示每页的数据量 。
您可以根据自己的需要来设置这两个参数 。
五、页面展示
接下来,我们来看一下页面展示 。
我们需要将查询到的数据展示到页面上 。
这里我主要用到的是Jinja2来渲染页面 。
{% for user in users %}
<tr>
<td>{{ user.id }}</td>
<td>{{ user.name }}</td>
<td>{{ user.age }}</td>
</tr>
{% endfor %}
这样我们就将查询到的数据展示到了页面上 。
需要注意的是,这里我使用了一个for循环来遍历users列表 。
users列表中包含了所有查询到的数据 。
六、总结
这就是实现多参数分页查询列表的实战经验 。
希望对大家有所帮助 。
在实际开发中,我们可能会遇到各种各样的问题 。
我们需要根据具体的情况来解决这些问题 。
但是,只要我们掌握了基本的方法,那么我们就可以轻松应对这些问题了 。
好了,今天的分享就到这里了 。
我们下期再见 。
谢谢大家 。