可以使用db.session.query() 方法来查询数据库中的数据,并使用offset()limit() 方法来限制查询结果的数量。以下是一个示例代码,可以查询某条记录前后 5 条记录:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)

class MyModel(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    data = db.Column(db.String(100))

# 查询某条记录id为1的前后5条记录
target_id = 1

target_record = MyModel.query.get(target_id)  # 查询目标记录
records_before = MyModel.query.filter(MyModel.id < target_id).order_by(MyModel.id.desc()).limit(5).all()  # 查询目标记录之前的5条记录
records_after = MyModel.query.filter(MyModel.id > target_id).order_by(MyModel.id.asc()).limit(5).all()  # 查询目标记录之后的5条记录

print('目标记录:', target_record.data)
print('目标记录之前的记录:')
for record in records_before:
    print(record.data)
print('目标记录之后的记录:')
for record in records_after:
    print(record.data)

在上述示例中,MyModel 是一个数据库模型,id 是主键列,data 是一个字符串列。我们通过 MyModel.query.get() 方法查询目标记录,然后使用 filter() 方法和 order_by() 方法来查询目标记录之前和之后的记录。最后,使用 limit() 方法来限制查询结果的数量。

请注意,上述示例仅适用于 SQLite 数据库。如果使用其他数据库,需要根据具体的数据库语法进行修改。

Python Flask SQLAlchemy: 查询特定记录前后5条数据

原文地址: https://www.cveoy.top/t/topic/qCFR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录