1

ピラミッド内の特定の IP を使用してユーザーをリダイレクトするグローバルな方法はありますか? 現在、ビューごとにリダイレクトする必要があります。

たとえば、各ビューは、「xyx.xxx.xx」の IP アドレスを持つすべてのページに「my custom message」を返します。その 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 経由以外で) ピラミッドでグローバルにリダイレクトできる方法はありますか?

ありがとう!

4

1 に答える 1

3

システムを使用できます: Pyramidevents

@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
于 2013-08-09T00:06:29.510 に答える