Pythonで文字列変数をGQLに渡すにはどうすればよいですか?? 私はSQLでそれをうまくやることができますが、うまくいきません。ここに私が持っているものがあります:
personalposts = db.GqlQuery("select * from PersonalPost where user_id = %s order by created desc limit 30" % user_id)
これは私を殺してきましたが、私が感じるのは本当にシンプルなはずです。
ありがとう!
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)