Juno で Blog Engine の続き
2009-07-22 - ⧖ 2.0 min昨日の続き ですこし機能追加しました。 session管理してブログ投稿を制限したりとか超基本的なところですが。 web.pyで作った時の機能は満たせたかなと。
http://www.hexacosa.net/hgrepos/junoblog/file/0ff9f24a8369/junoblog.py
ちょっとだけソースを追ってみたのでメモ。
以下で有効になるデバッガーはWerkzeugのもののようです。 インタラクティブシェル付きのデバッガーは初めて見た時は感動もの。
init ({'use_debugger' : True })
以下で有効になるセッション管理機能は、Beakerのものを使っているようです。
init ({'use_sessions' : True })
あまりSQLAlchemyを使ったことがなかったので勘違いしていたのですが、 DBにはデフォルトでSQLiteを使っていて、ORマッパーにSQLAlchemyを 使っているんですね。おはずかしいかぎり。。。 (まぁ「SQLAlchemyっていうすごいDBがあるんですよ。」とか言わなくてすんだ。) SQLiteはデフォルトはメモリ上にテーブルをつくるので、 ファイルに書き出したい時は、以下のような感じでファイル名を 指定してあげるとOKです。
#init({'db_location': ':memory'}) ## default setting
init ({'db_location' : 'filename.db' })
あとはDBのコラムのタイプは以下のような感じになってます。 はじめは全部stringにしていたのですが、unicodeとかunicodetextに 変えてみました。この辺りはSQLAlchemyとのマッピングの関係なんですかね。 もう少し勉強しないとだめだ。
## juno.py
142 column_mapping = {'string' : String , 'str' : String ,
143 'integer' : Integer , 'int' : Integer ,
144 'unicode' : Unicode , 'text' : Text ,
145 'unicodetext' : UnicodeText , 'date' : Date ,
146 'numeric' : Numeric , 'time' : Time ,
147 'float' : Float , 'datetime' : DateTime ,
148 'interval' : Interval , 'binary' : Binary ,
149 'boolean' : Boolean , 'bool' : Boolean ,
150 'pickletype' : PickleType ,
151 }
他にも色々設定できそうな感じですが、いま見れたのこれくらいです。 Junoいいなぁ。