繁体   English   中英

将字符串变量传递给gql查询

[英]pass a string variable into a gql query

我怎么在世界上用python将字符串变量传递给GQL? 我可以在SQL中做得很好,但它只是不起作用。 这就是我所拥有的:

personalposts = db.GqlQuery("select * from PersonalPost where user_id = %s order by created desc limit 30" % user_id)

这一直在杀我,但我觉得应该很简单。

谢谢!

这应该工作:

personalposts = db.GqlQuery("select * from PersonalPost where user_id =:1 order by created desc limit 30",user_id)

GqlQuery语法示例:

q = GqlQuery("SELECT * FROM Song WHERE composer = 'Lennon, John'")

q = GqlQuery("SELECT __key__ FROM Song WHERE composer = :1", "Lennon, John")

q = GqlQuery("SELECT * FROM Song WHERE composer = :composer", composer="Lennon, John")

来源: https //developers.google.com/appengine/docs/python/datastore/gqlqueryclass

参数可以通过位置或名称绑定,请查看GqlQuery类文档以获取更多信息。

所以你可以做到

personalposts = db.GqlQuery("select * from PersonalPost where user_id = :1 order by created desc limit 30", user_id)

要么

personalposts = db.GqlQuery("select * from PersonalPost where user_id = :id order by created desc limit 30", id = user_id)

创建一个这样的查询:

query = PersonalPost.all()
query.filter('user_id', user_id)
query.order('-created')

或使用:在'%s'周围加单引号!!

personalposts = db.GqlQuery("select * from PersonalPost where user_id = '%s' order by created desc" % user_id) 

暂无
暂无

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

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