可以使用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 flasksqlalchemy数据库查找某条记录前后5条记录

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

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