0

私は Google App Engine と Python の初心者です。

新しいユーザーがサイトにアクセスするたびに (最初にアクセスするページに関係なく)、SessionSupplemental テーブル (Kind) にエントリを作成したいと考えています。

これどうやってするの?

GAE には標準イベント トリガーのリストがあると想像できます。これらはどこに文書化されていますか?また、多くのシステム/アプリケーション属性があることも想像できます。これらはどこで文書化されており、どのように使用できますか?

ありがとう。

4

1 に答える 1

0

あなたがデフォルトのユーザーサービスを使用しているかどうかがわからず、SessionSupplemental エンティティをユーザーに一意にリンクしている方法や、ユーザーを識別する方法があるかどうかもわからないため、ここではかなり一般的にしようとしています。この時点で。また、App Engine の標準のリクエスト処理ライブラリである webapp のいくつかのバージョンを使用していると想定しています。もう少し詳しく教えてください。答えを更新して、より具体的にすることができます。

  • 新しいクラス (MyRequestHandler など) を使用して、webapp のデフォルトの RequestHandler をサブクラス化します。
  • サブクラスで initialize() メソッドをオーバーライドします。
  • 新しい initialize() メソッドで、セッション システム (またはユーザー サービスなど、使用しているもの) から現在のユーザーを取得します。このユーザーの SessionSupplemental エンティティが既に存在するかどうかをテストし、存在しない場合は新しいエンティティを作成します。
  • 他のすべてのリクエスト ハンドラについては、(デフォルトの RequestHandler の代わりに) MyRequestHandler をサブクラス化する必要があります。
  • リクエストが発生するたびに、webapp は自動的に initialize() メソッドを呼び出します。
  • これにより、リクエストごとに読み取りが発生し、新しいユーザーによるリクエストごとに書き込みが発生します。(db の代わりに) ndb ライブラリを使用すると、多くのリクエストがデータストアではなく memcache にヒットします。

新しい AppEngine アプリの作成を開始したばかりの場合は、Python27 ランタイムと webapp2 を使用し、できるだけ多くの webapp2 Auth モジュールを活用することをお勧めします。そうすれば、自分で多くのセッションを作成する必要がなくなります。また、ndb はデフォルトの db ライブラリよりも優れている場合があります。

于 2012-08-24T21:14:33.543 に答える