1

MongoDB をルート ファクトリとして使用して、Pyramid の Authorization/Authentication 機能をセットアップしようとしています。これらの行を含めるかどうか疑問に思っています(configはConfiguratorです)

db_url = urlparse(eval(settings['mongo_uri']))
conn = pymongo.Connection(host=db_url.hostname,
                          port=db_url.port)
config.registry.settings['db_conn'] = conn
config.add_subscriber(add_mongo_db, NewRequest)

冗長ですか?config に mongo ルート ファクトリを既に指定している場合、これは必要ですか?

4

1 に答える 1

1

そのようにすることはお勧めしません。ピラミッドアドオンを作成して、物事をより簡単かつクリーンにしました。

ドキュメントはこちら:

http://packages.python.org/pyramid_mongo/

以下は、私が現在書いているプロジェクトからのものです。

私のiniファイルに(Pythonの設定で書かれているかもしれませんが)

mongo.uri = mongodb://localhost/
mongo.db = wife

私のコンフィギュレーターでは:

config.include('pyramid_mongo')

そして、私の root_factory で:

from pyramid_mongo import get_db

...
...

def root_factory(request):
    db = get_db(request)
    return Root(db)

get_dbどこからでも呼び出すことができるため、最初の引数としてリクエストを渡す必要があります。他の引数を渡して、別のデータベースを照会できます。

その場合、サブスクライバーは必要ありません。

ところで、危険である可能性があるとドキュメントに書かれていても心配しないでください。現在のバージョンのパッケージは 100% のカバレッジを持ち、すべてのテストに合格しています。将来、このパッケージは、mongodb とのトラバーサルを簡素化するためにいくつかのツールを統合する可能性があります。

于 2012-08-11T19:57:20.850 に答える