在Google App Engine中创建用户并轻松迁移

问题描述 投票:1回答:1

我对GAE有点陌生,所以我想问一下,如何为像博客这样琐碎的事物创建用户模型。

到目前为止,这就是我得到的:

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

但这看起来很原始。 最好的做法是,如何在Google App Engine中创建用户,以创建其中唯一性是重要因素的字段。 另外,由于Google数据存储区中不允许链接,因此您如何将用户链接到博客文章。 最后,有一个可以管理您所有迁移的应用程序吗? 喜欢GAE的南部吗? 似乎有一种迁移的方法,但是它涉及大量的样板代码

另外,我来自django的背景,所以我发现所有这些都有点违反直觉,因为这不是关系数据库。

python google-app-engine google-cloud-datastore
1个回答
2
投票

您的User类目前还不错,您可以在开发过程中根据需要将字段添加到模型中。 但是您应该使用ndb而不是dbndb处理更多功能(例如自动缓存)。 您可以在文档中找到更多详细信息。

如果您想学习更高级的用户或数据存储模型,可以查看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查询检索用户发布的所有博客文章。

© www.soinside.com 2019 - 2024. All rights reserved.