1

私は GAE に少し慣れていないので、質問したいと思いました。ブログのような些細なことのユーザー モデルをどのように作成しますか。

だから、これは私が得たすべてです:

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

しかし、これは非常に原始的に見えます。一意性が重要な要素であるようなフィールドを作成するベスト プラクティスと同様に、Google アプリ エンジンでユーザーを作成するにはどうすればよいでしょうか。また、Google データストアではリンクが許可されていないため、ユーザーをブログ投稿にリンクするにはどうすればよいでしょうか。最後に、すべての移行を管理するアプリはありますか? GAEの南のように?移行する方法はあるようですが、大量の定型コードが必要でした。

また、私は django のバックグラウンドを持っているので、これはリレーショナル データベースではないため、これらすべてが少し直感に反していると感じています。

4

1 に答える 1

2

クラスは今のところ問題ありませUserん。開発中に必要に応じてモデルにフィールドを追加できます。ndbただし、ではなく使用する必要がありますdbndbより多くの機能を処理します (自動キャッシュなど)。詳細については、ドキュメントを参照してください。

より高度なユーザーまたはデータストア モデルについて学習したい場合はgae-boilerplate、ユーザーのログインとサインアップ (facebook/twitter/... からでも) を既に処理している を参照してください。README は非常によく文書化されています: 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 クエリを使用して、ユーザーが公開したすべてのブログ投稿を取得します。

于 2013-06-23T13:12:05.287 に答える