2007年10月10日
Python | Django AMF 0.6 新機能
Django AMFの実戦投入を控えて、新機能が追加されている。0.6のリリースはまだ先だけど、自分用のメモも兼ねて簡単に内容をまとめておく。
- 任意のAMFヘッダをレスポンスのAMFメッセージに設定可能
@amf_cacheデコレータ_amf_no_return_attrsクラス変数amf.django.flashモジュールamf.django.test.RemotingServiceクラス- Python → AMFの型変換で
decimal.Decimalクラスに対応
3番目の _amf_no_return_attrs クラス変数には、Modelクラスの属性の中でFlashに返したくないもののリストを指定する。属性名の文字列でも、django.db.models.fields モジュールに含まれるクラスのオブジェクトでもいい。ここで指定された属性は、レスポンスのAMFメッセージには含まれない。
今のところAMF0の場合のみ対応。(追記: AMF3の場合も対応)
amf.django.flash モジュールには、Djangoのリクエストオブジェクトを渡せばFlashの FileReference クラスからアップロードされた画像ファイルを PIL Image オブジェクトに変換して返してくれる関数や、XMLデータを ElementTree オブジェクトにして返してくれる関数などが含まれている。
amf.django.test.RemotingService クラスは、内部でDjangoのテスト用クライアントを
使ったAMFクライアント。なので、ネットワークにリクエストは飛ばない。Djangoで実行するユニットテストの中で使う用。
この導入に当たって、これまでの amf.RemotingService クラスは構造を変更し、amf.client.RemotingService に移動。
追加。
- レスポンスのHTTPヘッダにContent-Lengthをセット
- メソッド実行時の例外をキャッチした場合、DEBUG時でなければADMINSにエラーメールを送信
Comment