【问题标题】:Python appengine Query does not work when using a variable使用变量时,Python appengine Query 不起作用
【发布时间】:2010-03-11 19:34:25
【问题描述】:

我正在尝试使用 fetcher 方法从我的数据存储中检索项目。如果我使用以下

def getItem(item_id):
    q = Item.all()
    q.filter("itemid = ", item_id)

它失败了,因为没有返回任何东西。如果我在

之类的项目中硬编码
def getItem(item_id):
    q = Item.all()
    q.filter("itemid = ", 9000)

它的声音很好,并且伴随着欢快的歌声。我已经尝试了各种方法来让它发挥作用。我用过

result = db.GqlQuery("SELECT * FROM Item WHERE item_id = :1 LIMIT 1",
    title).fetch(1)

同样的效果。如果我硬编码一个数字,工作正常。我尝试将 select 语句设置为本地字符串,以这种方式组装它,将 int 转换为字符串,什么都没有。当我将 SELECT 语句输出到屏幕时,看起来很好。我可以将输出剪切并粘贴到字符串中,然后,它可以工作。任何帮助将不胜感激。

【问题讨论】:

    标签: python google-app-engine google-cloud-datastore


    【解决方案1】:

    如果你这样做有什么不同吗:

    def getItem(item_id):
        q = Item.all()
        q.filter("itemid = ", int(item_id))
    

    我看到的问题的最可能原因是 item_id 参数可能是一个字符串,即使它包含一个数值。将其强制转换为 int,看看是否有什么不同。

    【讨论】:

    • 我可以吻你。当然它是一个int,我一直在考虑构建一个sql字符串。效果很好。非常感谢。
    • 好消息,劳埃德。很高兴听到它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 2022-06-23
    • 2016-12-30
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多