2013-08-08 2 views
1

피라미드의 특정 IP를 사용하여 사용자를 리디렉션하는 전 세계적인 방법이 있습니까? 지금은 뷰 단위로 리디렉션해야합니다.피라미드에서 IP 주소를 전역 적으로 리디렉션하는 방법은 무엇입니까?

예를 들어 각보기는 'xyx.xxx.xx'방문의 IP 주소가있는 모든 페이지에 대해 '내 맞춤 메시지'를 반환합니다. 해당 IP 주소가 없으면 페이지가 정상적으로로드됩니다.

@view_config(renderer="json", route_name="myview") 
def myview(request): 
    redirector(request) 
    ...... 
def redirector(request): 
    if request.remote_addr.startswith('66.'): return viewA(request) 
    else: return 'my custom message' 

우리가 피라미드 (htaccess로를 통해 제외)에서 전 세계적으로 리디렉션 할 수있는 방법이 있습니까?

감사합니다.

답변

3

당신은 Pyramid's events system를 사용할 수 있습니다

@subscriber('pyramid.events.NewRequest') 
def newrequest(event): 
    request = event.request 
    if request.remote_addr.startswith('66.'): 
     raise SomeException('my custom message') 

@view_config(context=SomeException, renderer='string') 
def exc_view(exc, request): 
    return exc.message 
+0

피라미드는 점점 더 내가 배우고 사용할 더 멋진 가져옵니다. 그것은 매우 잘 생각한 틀입니다. 프레임 워크에 대한 귀하의 공헌뿐만 아니라 제 질문에 대한 귀하의 도움을 Thx. 여기 큰 팬! –

관련 문제