使用Google App Engine Python 2.7查詢類 -fetch()比列表(Model.all()。run())更好,用於從數據存儲查詢返回列表?
我需要生成一個結果列表,我傳遞給我的django模板。我發現有兩種方法可以做到這一點。
使用fetch,但是在文檔中說它應該幾乎不會被使用。 https://developers.google.com/appengine/docs/python/datastore/queryclass#Query_fetch
使用run(),然後將其包裝到list()中,從而創建列表對象。
是在存儲器使用方面一個優選的其他?有沒有另外一種方法可以做到這一點?
感謝您的答案 - 我必須在Django上做錯了什麼。我最後一次嘗試將迭代器傳遞給它,我記得它認爲它遲鈍,需要一個實際的列表。我將返回並重新修改django如何從{%for object in itr%}中處理它,其中itr從itr = Model.all()傳遞。run() – user1961
@DanielYoung:記住什麼允許迭代器便宜在內存中,它們只是一次性使用。你不能兩次使用這樣的迭代器 - 例如在Django模板的兩個地方,或者一次在代碼中,然後在Django模板中。這可能是您在決定「不願意」時可能觀察到的原因。 – liori
我非常感謝您的幫助和清晰簡潔的答案。還有一個問題,與我現在正在做的事情相比,兩次生成一個相同的迭代器是否有利?無論哪種方式都需要算法返工。 – user1961