繁体   English   中英

SQLAlchemy Core:如何将bindparam用于LIMIT / OFFSET子句?

[英]SQLAlchemy Core: How can I use bindparam for LIMIT/OFFSET clause?

这是我尝试的代码片段

query = tbl_scores.select().limit( bindparam('lim') )

但是,我收到以下错误。

TypeError: int() argument must be a string or a number, not 'BindParameter'

任何人都可以提供一个使用bindparam for LIMIT / OFFSET的例子吗?

Python 2.7.5,SQLAlchemy 0.8.4


假设webapi返回顶级玩家及其排名。 使用像这样的bind参数构造查询,然后将其存储在线程本地位置,以便请求可以共享相同的预编译查询。

# TypeError occurs here
a_thread_local_place.query = join(tbl_scores,
                          tbl_master_player,
                          tbl_scores.c.uid == tbl_master_player
                     ).\
                     select().limit(bindparam('lim'))

每次webapi处理请求时,我都想使用预编译查询执行这样的查询。

result = engine.connect().execute(
    a_thread_local_place.query,
    lim = 10,
)

目前你不能,但是有一个未解决的问题,并且补丁正在进行中:

https://bitbucket.org/zzzeek/sqlalchemy/issue/3034/use-my-own-bindparam-for-querylimit

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM