連休中に学習したメモ

・KidでForm文を作成する場合Boolean型に注意する。
radioボタンでcheckedを付けたい場合はchecked="checked"とすること。
そうしないとkid.Template(file)でパースに失敗する。

・PILで文字列から画像に起こしたい場合はfromStringより

import ImageFile
import Image

p = ImageFile.Parser()
#引数に文字列
p.feed(string)
#imageがリターンされる。
im = p.close()
im.show()

とするといい。

・KidでHTML出力する場合は以下のようにする。

import kid

serializer = kid.HTMLSerializer(encoding='utf-8') 
#空白を除去、かなり見辛いHTMLになるが、是非おすすめしておく。
serializer.strip_whitespace = True
template_module = kid.load_template('test.kid', cache=1)
template = template_module.Template()

print template.serialize(output=serializer)

これでHTMLが出力されるようになりFirefoxだではなくIEでも表示できるようになる。
ちなみにtemplate_moduleの一段階は省略して

import kid

serializer = kid.HTMLSerializer(encoding='utf-8') 
serializer.strip_whitespace = True
template = kid.Template(file='test.kid')

print template.serialize(output=serializer)

としてもかまわない。
個人的に分離した方が見やすいというだけである。

・SQLAlchemyのsession.update()がかなり便利。
session.query(Class).select()で持ってきて、
class.attrs=10
とし、変更してそのまま
session.update(class)で変更される。

これはかなり楽。

・from autoimp import *を多用してみています。
Connelly Blog: Automatic Python imports with autoimp
http://barnesc.blogspot.com/2006/06/automatic-python-imports-with-autoimp.html

外部ライブラリもしっかりと反応してくれたり。

是非感動を。


また、CherryPyを動かせるサーバーを保持していないので、
作ってみた画像アップロードシステムを動画で撮ってみました。

稚拙ながら限定公開してみます。
かなり重いファイルなので数日間限定で…。

サムネイル変更実装前
http://www.voluntas.net/upload.htm

サムネイル変更実装後
http://www.voluntas.net/upload2.htm

こんなの簡単に出来ますが?とか言われそう:-p

CherryPy 2.2.1
SQLAlchemy 0.2.5
Kid 0.9.2
cElementTree 1.0.5
PIL 1.1.5
PySQLite 2.3.2
lightbox 2.0.2
SQLite 3.3.6

を使用しております。