2013-06-23 42 views
1

我對GAE有點新,所以我想問一下,如何爲博客創建一個像微不足道的用戶模型。在Google App Engine中創建用戶並輕鬆遷移

所以,到目前爲止,這是我的一切:

class User(db.Model): # Todo create a user model, that works with your login page 
    username = db.UserProperty() 
    password = db.StringProperty() 

但是這看起來很原始。如何創建一個用戶在谷歌應用程序引擎,如最佳做法,創造這樣的領域,唯一性是一個重要因素。 另外,如何將用戶鏈接到博客文章,因爲鏈接不允許在谷歌數據存儲。 最後是有一個應用程序管理你的所有遷移?像GAE的南部?似乎有一種遷移方式,但涉及很多boiler-plate code

另外,我來自django背景,所以我發現所有這些都有點違反直覺,因爲這不是關係數據庫。

回答

2

您的User類現在還不錯,您可以在開發過程中爲您的模型添加字段。但你應該使用ndb而不是dbndb可以處理更多的功能(如自動緩存)。你可以找到更多的細節in the documentation

如果你想學習更高級的用戶或數據存儲模型,你可以看看gae-boilerplate,它已經處理用戶登錄和註冊(甚至從facebook/twitter/...)。自述文件有詳細記錄: https://github.com/coto/gae-boilerplate

您可以在模型中實現某種關係,可以使用KeyProperty()或在創建父實體時設置。例如:

class BlogPost(ndb.Model): 
    title = ndb.StringProperty() 
    content = ndb.TextProperty() 
    timestamp = ndb.DateTimeProperty(auto_add_now=True) 

# Then you can specify a parent in the constructor (where user is a User entity) 
blog_post = BlogPost(parent=user) 
blog_post.title = 'Post title' 
blog_post.content = 'Post content' 
blog_post.put() 

然後使用Ancestor queries檢索用戶發佈的所有博客文章。

+0

你介意添加一點代碼來說明如何在此構造函數中添加父項?這將使答案全面。抱歉再次提問。 –

+0

所有代碼都在這裏,'user'是一個用戶實體,您可以從查詢中檢索。如果你不知道如何去做,我建議你閱讀關於ndb查詢的文檔。 – Dalmas

相關問題