我嘗試從應用引擎數據存儲中獲取數據。App Engine,Python:如何按ID篩選查詢?
過濾查詢由 '標題'(或任何其他財產)的工作原理:
obj = db.Query(PageModel).filter('title',title)[0]
但隨着ID同樣的事情 - 不:
obj = db.Query(PageModel).filter('ID',page_id)[0]
我覺得有什麼特別的數據存儲中的ID和KEY,但我找不到,如何實現通過ID獲取數據。
我嘗試從應用引擎數據存儲中獲取數據。App Engine,Python:如何按ID篩選查詢?
過濾查詢由 '標題'(或任何其他財產)的工作原理:
obj = db.Query(PageModel).filter('title',title)[0]
但隨着ID同樣的事情 - 不:
obj = db.Query(PageModel).filter('ID',page_id)[0]
我覺得有什麼特別的數據存儲中的ID和KEY,但我找不到,如何實現通過ID獲取數據。
嘗試
obj = PageModel.get_by_id(page_id)
代替。這假定您正在使用的ID是數據存儲區密鑰的數字ID(即,來自obj.key().id()
之類的內容),而不是您添加到PageModel
的任意ID字段。取一個條目時
from google.appengine.ext.db import Key
key = Key('bgakaWdyc3NlcnIPCxIJRmVlZEVudHJ5GAwM')
# Match many
PageModel.all().filter('__key__ IN ', [key])
# Match one
PageModel.all().filter('__key__ = ', key)
然而,該方法get_by_id(ID)是優選的:
http://code.google.com/appengine/docs/python/datastore/modelclass.html#Model_get_by_id – Ryan
可以通過使用(多個)密鑰過濾數據。
需要更多信息。語境?這些屬性是什麼? –