Google App Engine/Python関連のメモ

Google App Engine 1.3.6の新機能

Google App Engine用フレームワークKayのログインフォームをカスタマイズする

Google App Engine用フレームワークKayのデータストアを利用した認証を使用したときのログインフォームをカスタマイズする方法を紹介します。


Kayのログインフォームのデザインを変更するのに、"auth/loginform.html"を直接編集することなく、フォームのデザインを変更する方法はないかな。

Google App Engine/Python関連のメモ

Google App Engine/Python関連のメモ

ExcelファイルやCSVファイルを動的に作成し、ZIP形式でダウンロードする方法。

MapReduceを使うときに。

Kayの認証機能でパスワードの再設定機能を使用するための設定

Kayの認証機能でパスワードの再設定機能を使用するための設定 « 山本隆の開発日誌」より。


Google App EngineフレームワークKayには、よくできた認証機能が備わっています。

この認証機能には、パスワードを忘れたユーザーに、新しいパスワードを設定してもらうための機能が用意されています。

ログイン画面

「パスワードを忘れた場合」のリンク先画面

この機能を使用するには、settings.pyに次の設定が必要になります。

settings.py

APP_NAME = u'サイト名'
DEFAULT_MAIL_FROM = '送信者メールアドレス'

ユーザーに送信されるメールの件名と本文のテンプレートは次のファイルになります。

件名

kay/auth/templates/reset_password_instruction_subject.txt

本文

kay/auth/templates/reset_password_instruction.txt

パスワード再設定メールの宛先メールアドレスは、sessings.AUTH_USER_MODELで設定されているモデルのemail属性になります。

以上の簡単な設定で、商用サイトにもそのまま使えそうなすばらしい認証機能が使用できます。

Google App Engine 1.3.5で導入されたQueryのEnd Cursorsを使ってみる。

Google App Engine 1.3.5で導入されたQueryのEnd Cursorsを使ってみる。 « 山本隆の開発日誌」より。



Google App Engine 1.3.5で導入されたQueryのEnd Cursorsを使ってみる。

QueryのEnd Cursorsを使うと、カーソルの終了地点を指定することが出来る。

使用するモデル

from google.appengine.ext import db
class Person(db.Model):
...

Personクラスには、positionの順に登録されている。

> q = Person.all().order('position')
> for p in q.fetch(5): print p.full_name
>
氏名0
氏名1
氏名2
氏名3
氏名4

6件目を示すカーソル。

> q.fetch(5)
> cursor1 = q.cursor()

11件目を示すカーソル。

> q.fetch(10)
> cursor2 = q.cursor()

16件目を示すカーソル。

> q.fetch(15)
> cursor3 = q.cursor()

6件目から10件目までを取得する。

> r = Person.all().order('position')
> r.with_cursor(cursor1, cursor2)
> for p in r.fetch(100): print p.full_name
氏名5
氏名6
氏名7
氏名8
氏名9

6件目から15件目までを取得する。

> r.with_cursor(cursor1, cursor3)
> for p in r.fetch(100): print p.full_name
氏名5
(省略)
氏名14

Google App Engineのドキュメントには、End Cursorsの記述はまだないみたい。

Cursorsについては英語ドキュメントの「Query Cursors」を参照。