0

我打算使用網址提取在兩個GAE網絡應用之間交換NDB實體。使用網址提取在兩個GAE網絡應用之間交換NDB實體

一個Web應用程序可以使用實體模型名稱,啓動實體索引號和要獲取的實體數來啓動HTTP POST請求。每個實體都有一個索引號,這個索引號對於新的實體會按順序遞增。

發送實體:
一些分隔符可以添加到分開不同的實體,以及分離的實體的屬性。 HTTP響應會有一個包含實體數據的變量(比如「內容」)。

接收端的Web APP:
接收器的Web應用程序將解析接收到的數據,並通過創造新的實體存儲實體和它們的屬性值和「放」婷他們

無論是Web應用程序正在運行GAE Python和具有相同的模型。

我的問題: 上述方法有什麼不利嗎? 有沒有更好的方式在代碼中以自動方式實現這一點?

我打算實施本作某種罕見的數據備份設計實現

+0

我不得不問,爲什麼你正在運行旨在共享數據的兩個獨立的應用程序。爲什麼不在同一個應用程序上運行。 –

+0

@TimHoffman我會坦率的..我想讓數據錄入人員繼續向這個數據應用程序提供數據。這將''主應用程序''隔離不良的設計問題,將來我可能不得不重新設計模型(數據庫設計)。通過這種方式,我可以重寫''主應用程序'',並且可以將所有數據準備好提供給它。我的主應用程序在一些專門的數據(模型)中存儲了一些數據應用程序數據,這些數據旨在提供更好的查詢響應時間。如果您覺得這種方法不對,請隨時告訴我 – gsinha

+1

我認爲這是災難IMO的配方,不堅持幹,你現在必須管理兩個位置的數據,保持同步。現在您需要啓動版本控制實體,或者您如何知道哪一個是正確的。管理員和普通用戶的不同版本(模塊)。開發一個好的安全模型。如果您需要以任何重要方式更改您的數據結構,我不明白這種方法如何將您從主要更改中隔離出來。無論哪種方式,您將需要執行數據遷移。所需要的只是模型漂移一點 - 然後你在一個受到傷害的世界裏。 –

回答

2

的可以使用NDB to_dict()方法的一個實體,並使用JSON來交換數據TE。 如果它是很多數據,你可以使用遊標。

要交換實體鍵,您可以將安全密鑰添加到字典中。

+0

感謝您的回覆。 NDB to_dict()應該是有用的。而使用JSON也是我認同的一種更好的方式。我也計劃使用查詢光標。對不起,我沒有得到'爲了交換實體鍵,你可以添加安全密鑰到字典。您是指KeyProperty .. – gsinha

+0

您是否打算將'urlsafe()'用於KeyProperty類型的屬性 – gsinha

+1

是的,當您使用to_dict()時,該鍵不會添加到該字典中。您必須使用urlsafe將該密鑰自己添加到該字典中。 – voscausa