3

私は Django Web ページをデプロイしています。Django Debug 404 ページと、Python エラーが発生した場合の Django ページが気に入っています。ただし、これらはオンラインになる Web ページには適していません。そこで、カスタム 404 ページを作成しました。ただし、私と私の IP アドレスでは、Django デバッグ ページを引き続き表示したいと考えています。Debug を false に設定した場合、これを行う方法はありますか?

4

1 に答える 1

7

urlconf で handler404 を設定することにより、404 用の独自のハンドラー ビューを定義できます。デフォルトの handler404 はで、基本的にテンプレートdjango.views.defaults.page_not_foundをレンダリングするだけです。404.html

これを urlconf に入れると、特定の IP に対して「技術的な」404 応答 (素敵な黄色のページ) が表示され、他の IP に対して Django のデフォルトの 404 プロダクション ビューが使用されます。

import sys
from django.views.debug import technical_404_response
from django.views.defaults import page_not_found

def handler404(request):
    if request.META['REMOTE_ADDR'] == 'YOUR_IP_ADDRESS':
        exc_type, exc_value, tb = sys.exc_info()
        return technical_404_response(request, exc_value)
    else:
        return page_not_found(request)

404 エラーの適切なログ記録を設定することをお勧めします。Django は、指定可能なルールについて、実稼働環境で発生する 404 と例外を電子メールで送信したり、ログに記録したりできます。

エラー報告ロギングに関するドキュメントを参照してください(ロギング フレームワークは 1.3 で追加されました)。

于 2011-09-21T07:01:31.923 に答える