Zopeプロダクト開発メモ
zope product 開発の備忘録
↪ 新規投稿する
全3件 - 3
03 owa #e8faefa 2004/09/15 23:13 prob:0.0%
プロダクトを開発する場合、普段使っている user で zope を立ち上げた方がなにかと便利です。という理由で新規に zope インスタンスを追加してみました。 普通にログインした後 $ /usr/lib/zope/bin/mkzopeinstance.py -d Zope -u <username>:<password> これで ~/Zope の下に zope サーバ環境が一式まるごとできあがります。 ~/Zope/etc/zope.conf を適当に(port番号とか)修正したあと $ ~/Zope/bin/runzope で zope を立ち上げます。 こういうことを(なぜ)今まで試さなかったのが不思議。これでパーミッションやらシェル環境やら普段の開発環境のままで試せます。いらなくなったら Zope ディレクトリごと削除してしまうだけ。 追記: ZopeX3 の場合は ".py" がいらない $ /usr/lib/zope/bin/mkzopeinstance -d Zope -u <username>:<password>
02 owa #e8faefa 2004/01/26 10:26 prob:0.0%
デバッグ用ログの出し方ですが、知らなかったので備忘録;; プロダクトのクラスの先頭に from zLOG import LOG, INFO と書いて置いて、後はすきな場所で LOG('HogeClass:', INFO, '知りたい値') などと呼び出せば zope のログにタイミング良く出力されます。 詳細は zope/lib/python/zLOG/MinimalLogger.py 見れば良さそう。
01 owa #e8faefa 2004/01/26 10:26 prob:0.0%
プロダクトインターフェース作っていて、やっと分かったこと。 一番は自分が何もしらなかったこと。やっぱりいろんなプロダクトの UI ってのはみんな苦労して作ったんだなといまさらながら思います。 データの持ち方で少しだけ分かったことですが (鯖側の場合) REQUEST.form -- 基本的にはこれでクライアントからの情報を取り込む REQUEST.set() -- manage_hoge.dtml に情報を送る(追加する) REQUEST.SESSION -- 本来クライアント情報を持つべきものかもしれないが、REQUEST に保持できない場合(dtmlの中のリンクの先など)に利用させてもらう(邪道かな?) オブジェクトの揮発属性(self._v_hoge)は zope オブジェクト生成時に __set_state__() で一回だけ設定されるようにすること。つまり読み込み専用。書き込んでしまうと zope のキャッシュ処理の関係で分けのわからないことになる。 というわけでやっとブラウザの「元に戻る」ボタンにも、なんとなく対応できたようです。それはこちらの話...