2011-02-15 2 views
2

요청이 이미 사용자에게 전송 된 중개자와 관련된 이벤트 또는 일종의 작업이 있지만 나중에 DB에서 작업 할 수 있도록 정보가 남아 있습니까? 방법 후라는 컨트롤러 메소드 후/그이 후 전라고 정의 할 수 Pyramid/Pylons의 사후 요청 이벤트 이벤트

답변

2

당신은 아마 이미와 요청 나눠 전에 을 수행 할 수 있습니다에 대해 아시는 바와 같이 : 당신이 요청에 완성 된 콜백을 추가해야합니다 (미들웨어를 사용하지 않고) http://docs.pylonsproject.org/projects/pyramid/1.0/narr/events.html#configuring-an-event-listener-imperatively

처리에 게시 요청 물건 여기에 설명 : http://docs.pylonsproject.org/projects/pyramid/1.0/api/request.html#pyramid.request.Request.add_finished_callback

물론 완료 콜백은 한 요청의 범위 내에서만 발생합니다. 다음 두 가지를 결합하여 모든 요청을 처리 할 수 ​​있습니다.

from pyramid.events import NewRequest 

def do_something(request): 
    # do something here 
    pass 

def setup_post_request(event): 
    event.request.add_finished_callback(do_something) 

config.add_subscriber(setup_post_request, NewRequest) 
+0

이것은 내가 중성층을 필요로하지 않았고, thas – Timmy

1

는 철탑에서 각 컨트롤러는 할 수 있습니다.

컨트롤러 호출을 포함하고 거기에 사용자 정의 코드를 추가 할 수있는 lib/base.py 파일이 있지만 요청이있을 때마다 호출되며 코드에서 오류가 발생할 경우 위험 할 수 있습니다.

나는 피라미드에서 확실하지 않다.

사용자 정의 미들웨어에서 작업을 수행하면 요청 및 응답 객체에는 액세스 할 수 있지만 다른 객체에는 액세스 할 수 없습니다. 당신은 이론적으로 DB 설정과 같은 .ini 구성을 구문 분석 할 수 있지만, 실제로 응용 프로그램의 일부인 경우, 나는 거기에있는 곳을 고수 할 것입니다.

관련 문제