2012-08-11 2 views
1

MongoDB를 루트 ​​팩토리로 사용하여 Pyramid의 인증/인증 기능을 설정하려고합니다. 이 줄을 포함하는 경우 궁금하네요 (구성 Configurator)MongoDB를 루트로 만드는 경우 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 루트 팩토리로 지정한 경우이 작업이 필요합니까?

답변

1

그렇게하는 것은 좋지 않습니다. 필자는 물건을 더 쉽고 깨끗하게 만들기 위해 피라미드 애드온을 썼다. 여기

문서 :

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

다음은 내가 지금 쓰고있어 프로젝트에서입니다. 내 INI 파일에서

내 Configurator에서

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 수를 어디서든지 호출 될 수 있습니다. 첫 번째 인수로 요청을 전달해야합니다. 다른 인수를 전달하여 다른 데이터베이스를 조회 할 수 있습니다.

이 경우 구독자가 필요하지 않습니다.

Btw, 위험 할 수도있는 문서에 기록되어 있다면 걱정하지 마십시오. 패키지의 현재 버전은 100 % 적용 범위이며 모든 테스트를 통과했습니다. 앞으로이 패키지는 mongodb와의 순회를 단순화하기 위해 일부 도구를 통합 할 수 있습니다.