【问题标题】:SQL OFFSET gone wrong with placeholders in FlaskFlask 中的占位符出现 SQL OFFSET 错误
【发布时间】:2020-04-12 12:00:02
【问题描述】:

问题看起来很简单,但我不知道为什么。

这段代码运行良好:

qr="SELECT title, author, year FROM books ORDER BY id ASC LIMIT 10 OFFSET 20"
books=db.execute(qr).fetchall()
return json.dumps([dict(r) for r in books])

但是当我使用一个变量作为偏移值时,像这样

paging = 20
qr="SELECT title, author, year FROM books ORDER BY id ASC LIMIT 10 OFFSET :paging",{"paging":paging}
books=db.execute(qr).fetchall()
return json.dumps([dict(r) for r in books])

导致错误:

sqlalchemy.exc.ArgumentError
sqlalchemy.exc.ArgumentError: SQL expression object expected, got object of type <class 'tuple'> instead

【问题讨论】:

    标签: python sql flask


    【解决方案1】:
    paging = 20
    books=db.execute("SELECT title, author, year FROM books ORDER BY id ASC LIMIT 10 OFFSET :paging", paging=paging).fetchall()
    return json.dumps([dict(r) for r in books])
    

    更多信息请访问https://docs.sqlalchemy.org/en/13/core/tutorial.html#using-textual-sql

    【讨论】:

      猜你喜欢
      • 2015-04-18
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 2017-11-12
      • 2020-04-17
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多