2011-09-21 87 views
3

我正在部署一個Django網頁,我喜歡Django Debug 404頁面和Django頁面,當出現python錯誤時。但是,這些不適用於正在上線的網頁。所以我做了一個自定義的404頁面。然而,對於我和我的IP地址,我想仍然有Django Debug頁面出現。如果我將Debug設置爲false,是否有這樣做?自定義Django 404頁面和Django調試頁面

回答

6

您可以通過在urlconf中設置handler404來爲404s定義自己的處理程序視圖。默認處理程序404是django.views.defaults.page_not_found,它基本上只呈現404.html模板。

如果你把這個在你的URLconf,它會顯示一個特定IP「技術」 404響應(漂亮的黃色頁),並使用Django默認的404-生產觀爲其他IP:

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可以爲生產環境中的電子郵件或日誌記錄404s和異常,以瞭解您可以指定的規則。

請參閱有關error reportinglogging(日誌框架添加到1.3)的文檔