Flask 使用 SQLAlchemy 分页查询最高级任务示例
class SysTask(db.Model): ''tablename = 'sys_task' ''table_args = {'useexisting': True} id = db.Column(db.Integer, autoincrement=True, primary_key=True, unique=True, info='编号') responsible_id = db.Column(db.Integer, db.ForeignKey('sys_user.user_id'), info='责任人编号') parent_id = db.Column(db.Integer, db.ForeignKey('sys_task.id')) children = db.relationship('SysTask', cascade='all', backref=db.backref('parent', remote_side=[id]))
python flask 单标查询查找责任人时,分页查找如何查询满足条件的最高级task内容:要查询满足条件的最高级任务,可以使用以下步骤:
- 根据给定的责任人编号,使用
filter_by()方法在SysTask表中查询满足条件的任务。 - 使用
filter()方法将结果限制为没有父任务的任务,即最高级任务。 - 使用
paginate()方法进行分页查询。
下面是一个示例代码:
from flask import request
# 获取请求参数
responsible_id = request.args.get('responsible_id')
page = request.args.get('page', 1, type=int)
per_page = request.args.get('per_page', 10, type=int)
# 查询满足条件的最高级任务
query = SysTask.query.filter_by(responsible_id=responsible_id).filter(SysTask.parent_id == None)
tasks = query.paginate(page=page, per_page=per_page)
# 处理查询结果
result = {
'total': tasks.total,
'pages': tasks.pages,
'current_page': tasks.page,
'per_page': tasks.per_page,
'tasks': []
}
for task in tasks.items:
# 处理任务数据
task_data = {
'id': task.id,
'responsible_id': task.responsible_id,
# 其他任务属性
}
result['tasks'].append(task_data)
# 返回结果
return result
注意:在上述示例代码中,request.args.get() 方法用于获取请求参数,paginate() 方法用于分页查询。你可以根据实际情况调整代码。
原文地址: https://www.cveoy.top/t/topic/pgsi 著作权归作者所有。请勿转载和采集!