Pylons + MongoKit + i18n

Filed in MongoDB | Pylons | Python Leave a comment

多国語対応とかやってみたい。
ということで、helper.pyに

def locale(data_dict):

    """
    dbの値(mongo)において、
    ユーザが設定している言語の文字列を優先して返す
    ない場合は言語優先順に文字列を検索して返す
    """

    if type(data_dict) != dict:
        return None

    if is_login():
        lang = session.get('userinfo', None).get('lang', None)

    val = data_dict.get('lang', None)
    if val is None:
        for lang in langlist():
            val = data_dict.get(lang, None)
            if val:
                break
    return val

def langlist():
    ll = [
        'en',   # 英語
        'ja',   # 日本語
        'es',   # スペイン語
        'fr',   # フランス語
        'it',   # イタリア語
        'ru',   # ロシア語
        'nl',   # オランダ語
        'tw',   # 繁体字台湾
        'cn',   # 簡体字中国
        'kr',   # 韓国語
        ]
    return ll

こんなの書いてたんだけど、そんなのとっくにあった。ちゃんとロケール見て切り替えるんだー。そこまでやんなきゃだめだったかー。
というわけで徒労。まあいいもんみっけたしいいか。
あたしのかいたやつ危なっかしいとこ放置してたしね……。

PylonsのHelpersでconfigをつかうには?

Filed in kvs | MongoDB | Pylons | Python Leave a comment

いやわかんないんですけど。
ちょっと詰まったものの時間切れなので備忘としてメモ。

どうなんだろと思ってhelpers.pyの先頭あたりで読んでみてprint
{‘pylons.app_globals’: None, ‘pylons.request_options’: {‘e以下略

厳しいなー
SQLAlchemy経由でなんかやってたときは困らなかったけど、Mongokitだとpylons.app_globalsにおいてあるconnection呼べないと動かせない。
こういうときのお作法はどうなってるんだろう。
Noneじゃなあ。実際動かしたときにもNoneのままかどうか確かめてみよう。

結果:
呼べてた。

def conftest():

    from pylons import config
    print(config)
    connection = config['pylons.app_globals'].connection
    print(connection)

なんだー

まあなんだ

Filed in MongoDB Leave a comment

ごちゃごちゃならべてないで動くもん出せってはなしだわな。進めよう。

u-n

Filed in MongoDB | Pylons Leave a comment

MongoKitはちょっと違う気がしてきた。
model.__init__.pyにモデルの読み込みを全部書きこむのってなんかなあ。
都度使うやつだけ読みたいんだよ。

MongoKit

Filed in Database | MongoDB | Pylons | Python Leave a comment

http://pypi.python.org/pypi/mongokit/0.7.2
mongodbのツールキット。自分でmapper書かなくてよかったのか。
Pylons supportを謳っているのがポイント高い。development.iniとかのiniファイルに接続の設定書けるみたい。
ちょうどこのへんの書き方で自分のだとなんか半端だなーとおもっていたところだったのでありがたい。
さっそく使ってみる。
現時点での最終更新が2011-08-30でversion0.7.2。旬ですね。

, , ,

E11000 duplicate key error index

Filed in kvs | MongoDB | Pylons | Python Leave a comment

メモ。pymongoのはなし。
insertであたらしいObjectIdを発行してくれないことがある。

E11000 duplicate key error index: foo.bar.$_id_  dup key: { : ObjectId('4dbbc8b7d9b1324716000000') }

なんだ?

from pymongo.objectid import ObjectId
ObjectId()
→ObjectId('4dbbed47d9b132452b000000')

結局明示的に新しいId拾ってinsertしています。なんだー。

jinja2

Filed in FormEncode | Jinja | MongoDB Leave a comment

jinja2つかいはじめました。
なにこれすんごい楽。スタックトレースもとれる。
いま作ってるのはこれでいこう。
あたるとおもうんだけどなー。急いでつくろう。

mongodが起動しない

Filed in Database | MongoDB Leave a comment

なんだ?とおもってログを見る。

old lock file: \data\db\mongod.lock.  probably means unclean shutdown
recommend removing file and running --repair
see: http://dochub.mongodb.org/core/repair for more information

dbディレクトリのなかにあるmongod.lock.を消せ?

TOP