Google App Engine/Python関連のメモ
- Google App Engineのアンチパターン
Google App Engineのアンチパターン(1) 正規化のし過ぎ « 山本隆の開発日誌
Google App Engineのアンチパターン(2) 不要なインデックス « 山本隆の開発日誌
Google App Engineのアンチパターン(3) Greedy module loading(貪欲なモジュール読み込み) « 山本隆の開発日誌
GoogleAppEngineで見かける悪い例と、その修正方法。
- Kay FrameworkでAppstatsを使う方法
Google App Engine用フレームワークKayでパフォーマンス測定ツール「Appstats」を使用する « 山本隆の開発日誌
- Kay Frameworkでログインのテスト方法
Kay Framework でログイン必須のビューをテストする方法 - present
Google App Engine用フレームワークKayで@login_required の付いた関数のテスト方法 « 山本隆の開発日誌
Kay Frameworkでログインが必要なビューをテストする方法。
Google App Engine 1.3.6の新機能
Google App Engine Version 1.3.6の新機能 « 山本隆の開発日誌
Google App Engine Version 1.3.6の新機能の解説と、実際に動作を確認できるサンプルコード。
Google App Engine 1.3.6 - Ian Lewis
Google App Engine 1.3.6の主な機能のまとめ。
Google App Engine 1.3.6 のNamespace API - hidemonの日記
Google App Engine 1.3.6の新機能の一つであるNamspace APIについて。
tdtshのブログ » slim3、Google App Engine for Java 1.3.6 で Blobstore APIをためす
Google App Engine 1.3.6の新機能の一つであるBlobstore APIについて。
Google App Engine用フレームワークKayのログインフォームをカスタマイズする
Google App Engine用フレームワークKayのデータストアを利用した認証を使用したときのログインフォームをカスタマイズする方法を紹介します。
- Kayのログインフォームをカスタマイズする(1) 継承元のテンプレートファイルを変更する « 山本隆の開発日誌
- Kayのログインフォームをカスタマイズする(2) 文言の日本語化する « 山本隆の開発日誌
Kayのログインフォームのデザインを変更するのに、"auth/loginform.html"を直接編集することなく、フォームのデザインを変更する方法はないかな。
Google App Engine/Python関連のメモ
- Google App Engine Anti Patterns by Takashi Matsuo on Prezi
http://prezi.com/51ydax-knaxl/google-app-engine-anti-patterns/
必見! - Google App Engine で画像を正方形にcropして保存 - Pyro Memo
http://d.hatena.ne.jp/piro_suke/20100804/1280934622 - Google App Engine で dropbox API を使うにあたって - かずぽんのブログ
http://d.hatena.ne.jp/kazu_pon/20100809/p1 - Android アプリから Google アカウントを利用して GAE アプリケーションを利用する (グロブ)
http://typea.info/blg/glob/2010/08/android_google_gae.html - MOONGIFT » Blog Archive » Google App Engine上でPyPress「PyPress For GAE」 オープンソース・ソフトウェア/フリーウェアを毎日紹介
http://www.moongift.jp/2010/08/pypress4gae/ - Togetter - 「PyPIが落ちていたとき慌てずにミラーを使う方法」
http://togetter.com/li/39936 - 2010-08-05 - 理想のユーザ・インターフェイスを求めて
http://d.hatena.ne.jp/Megumi221/20100805#1280980529
Google App Engine/Python関連のメモ
- Google App Engine(Python)で動的にCSVファイルを作成してダウンロードさせる « 山本隆の開発日誌
- Google App Engine(Python)用フレームワークKayを使い、動的にExcelファイルを作成してZIP形式で圧縮しダウンロードさせる « 山本隆の開発日誌
- Google App Engine(Python)用フレームワークKayを使い、動的にZIP形式で圧縮してダウンロードさせる « 山本隆の開発日誌
- Google App Engine用フレームワークKayでExcelファイルをダウンロードさせる « 山本隆の開発日誌
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」を参照。