2013-07-29 54 views
0

這是我在stackoverflow上的第一個問題,我是編程新手:用啓動數據初始化GAE數據存儲?

在部署我的應用程序時,將數據加載到GAE數據存儲的正確方法是什麼?這應該只在部署時發生一次。

換句話說:我如何在代碼中調用方法,以便只在部署我的應用程序時調用這些方法?

的python2.7的GAE文檔中說,一個不應該叫一個主要功能,所以我不能做到這一點:

if __name__ == '__main__': 
    initialize_datastore() 
    main() 
+0

你可以只檢查是否存在數據,如果沒有,運行啓動腳本 –

+0

呀,不這樣做。事實上,如果您的處理程序腳本底部有「if __name__ =='__main__'」代碼,請將其刪除。 – Tombatron

回答

2

創建僅限於管理員的處理程序。當通過簡單的GET請求調用該處理程序時,您可以檢查該種子數據是否存在,如果不存在,則插入它。

Configuring a handler to require login or administrator status.

另一種選擇是編寫利用遠程API的Python腳本。這將允許您訪問本地數據源,例如CSV文件或本地託管的數據庫,並且不會要求您創建可能笨重的處理程序。

閱讀文檔中的Remote API。

Using the Remote API Shell - Google App Engine

+0

感謝您的回答!這聽起來像不是很優雅的解決方法。這是一個特殊的問題嗎?應該有一個簡單的方法,或不是? – fhchl

+0

@Timbatron的建議是優雅的,以及正確的做法。如果你有很多數據要創建,你可以考慮在taskqueue中運行它(它有10分鐘的截止時間而不是1) –

+0

那麼那麼Remote API如何呢?當我剛開始回覆時,完全沒有選擇該選項。 – Tombatron