django関連のコードを読んでいて、django.utils.functionalというモジュールが目につきました。中を見るとカリー化や遅延評価など聞いたは事あるものの、いまいちピンとこなかったので、調べた事のメモ書きを残しておきます。
‘django’ タグのついている投稿
django.utils.functionalを読んだメモ
2011年12月21日 水曜日DjangoでJinja2を使いたいという話
2011年10月13日 木曜日先ほどの記事にも書いたようにAppStatsは、Kay frameworkで途中まで書いたコードをDjangoに移植したんですが、その際にテンプレートエンジンの差異に少し戸惑いました。
Kayで採用されているjinja2はDjangoの標準テンプレートに良く似せて作られていて、Djangoを触った事があれば違和感無く使い始められます。ところがDjangoでイマイチな部分が解消されていて、一度jinja2を使ってしまうとDjangoに戻ってきた時にイライラしてしまうという問題が生じます。jinja2の何が良いかというと、例えばdjangoのドット記法はヤダとか、テンプレート中で関数呼び出しを見慣れている形で記述できるとか、デフォで{% macro %}が使える等などです。
正直macroなんかは一回使ったらもう同等機能がないテンプレートシステムなんて使えないです。という訳でDjangoでもjinja2を使いたいということで、調べた方法を記録しておきます。
iPhoneアプリのランキングサイト書いた
2011年10月12日 水曜日[メモ] Pythonのデコレータ
2010年5月30日 日曜日出てくる度に調べる割に、いつまで経っても覚えられなかったデコレータですが、今回こそ仕留める為にメモエントリーです。まずよく見かけるのは関数の時間を計測するという例ですね。僕はこの形だけを何となく覚えては忘れていました。
#!/usr/bin/python # -*- coding: utf-8 -*- import time # デコレータ定義 def time_func(func): def decorator(*args): start = time.time() ret = func() print '%s was executed, it took %s sec' % (func.func_name, time.time() - start) return ret return decorator # デコレータ適用 @time_func def test(): time.sleep(1) def main(): test() if __name__ == '__main__': main()


