Python Flask SQLAlchemy: 查询特定记录前后5条数据
可以使用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 数据库。如果使用其他数据库,需要根据具体的数据库语法进行修改。
原文地址: https://www.cveoy.top/t/topic/qCFR 著作权归作者所有。请勿转载和采集!