您好我是GAE和Python的新手,來自PHP和MySQL背景。 道歉,如果我的問題是天真的,沒有足夠的功課。GAE數據存儲:如何在db.DateTimeProperty()設置過濾器
在我的應用程序中,我有很多主人,我想逐一顯示這些主人(將視圖切換到列表模式的選項)。
我所有的主模型都有一個名爲ts的屬性,保存時會自動填充當前時間戳。
我有一個方法get_rec在我的主類,它默認提取最後保存的記錄。在點擊導航按鈕時,系統應該採用上一個或下一個。爲了實現這一點,我寫這篇文章的代碼
q = db.Query(modl)
if pos == "prev" :
#ts is a string returned by JSON as 2012-07-03T14:19:36.817000
q.filter("ts <", ts.replace("T", " "))
q.order('-ts')
elif pos == "next" :
q.filter("ts >", ts.replace("T", " "))
q.order('ts')
else :
q.order('-ts')
res = q.fetch(1)
return simplejson.dumps(res, cls=jsonEncoder)
但返回的數據對象始終是最後一個記錄。 順便提一下,json發送的ts在時間前有一個T,而在數據瀏覽器控制檯上,我找不到任何T,而是一個空格。我嘗試用空格替換T.我應該將日期對象作爲datetime.datetime()而不是日期字符串傳遞嗎?
您需要將字符串轉換成日期時間我失去的東西在這裏...提前
好的。這是我的錯誤。 MySQL始終將datetime存儲爲字符串,並且字符串比較很容易實現,但不會在數據存儲上實現。正如我最初懷疑日期時間存儲爲python日期對象,我需要通過datetime.datetime.strptime(ts,'%y-%m-%dT%H:%M:%S')。 GAE版本不支持。%f這是另一個我們可以很容易地將其與其他SO問題和答案進行整理的問題。 – Jegatheesh