You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在FastAPI paginate的SQL文本查询中传递占位符参数

解决FastAPI paginate结合SQLAlchemy文本查询的参数绑定问题

要让SQLAlchemy的文本查询语句在FastAPI的paginate方法中正确绑定查询参数,你可以通过以下两种方式实现:

方法一:直接在text语句上绑定参数

使用SQLAlchemy的bindparams方法将参数直接绑定到文本查询对象上,再传入paginate:

from sqlalchemy import text
from fastapi_pagination.ext.sqlalchemy import paginate

# 绑定参数到text语句
stmt = text("SELECT * from table where id=:id and name=:name").bindparams(id="1234", name="alpha")
# 传入paginate执行分页查询
data = await paginate(db, stmt, additional_data={})

方法二:用select包裹text语句并传递参数

如果需要更灵活的参数传递方式,可以用select包裹文本查询,再通过params方法传入查询参数:

from sqlalchemy import text, select
from fastapi_pagination.ext.sqlalchemy import paginate

stmt = text("SELECT * from table where id=:id and name=:name")
# 用select包裹文本查询并传入参数
query = select(stmt).params(id="1234", name="alpha")
# 传入paginate执行分页查询
data = await paginate(db, query, additional_data={})

注意:paginate方法自带的params参数是用于控制分页的偏移量和条数(比如params={"offset": 0, "limit": 10}),和SQL查询的占位符参数不是同一概念,不能用它传递你的查询条件。

内容的提问来源于stack exchange,提问作者eht_ck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 00:49:54