2007年10月10日

Python | Django AMF 0.6 新機能

Django AMFの実戦投入を控えて、新機能が追加されている。0.6のリリースはまだ先だけど、自分用のメモも兼ねて簡単に内容をまとめておく。

  1. 任意のAMFヘッダをレスポンスのAMFメッセージに設定可能
  2. @amf_cache デコレータ
  3. _amf_no_return_attrs クラス変数
  4. amf.django.flash モジュール
  5. amf.django.test.RemotingService クラス
  6. 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にエラーメールを送信
Posted by otsuka : 17:53 | Comment (0) | Trackback (0)
Comment









名前、アドレスを登録しますか?