在googleappengine中创建用户和迁移

2024-04-24 14:55:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我对GAE有点陌生,所以我想问,如何为像博客这样琐碎的东西创建一个用户模型。你知道吗

到目前为止,我只有这些:

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

但这看起来很原始。如何在googleappengine中创建一个用户,最佳实践是什么,创建这样的领域,其中唯一性是一个重要因素。 另外,你如何将用户链接到博客文章,因为链接是不允许在谷歌数据存储。 最后,是否有一个应用程序可以管理您的所有迁移?像南方的同性恋?似乎有一种迁移方法,但它涉及大量的boiler-plate code。你知道吗

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


Tags: 用户模型dbmodelthat链接createtodo
1条回答
网友
1楼 · 发布于 2024-04-24 14:55:13

您的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检索用户发布的所有博客文章。你知道吗

相关问题 更多 >