Django 404(頁面未找到)
頁面未找到
如果您嘗試訪問不存在的頁面(404 錯誤),Django 會將您定向到一個內建的檢視來處理 404 錯誤。
在本章後面,您將學習如何自定義此 404 檢視,但首先,只需嘗試請求一個不存在的頁面。
在瀏覽器視窗的位址列中輸入 127.0.0.1:8000/masfdfg/
。
您將得到以下兩種結果之一
1:

2:

如果您得到了第一種結果,則您被定向到內建的 Django 404 模板。
如果您得到了第二種結果,則您的設定中 DEBUG
被設定為 True
,您必須將其設定為 False
才能被定向到 404 模板。
這在 settings.py
檔案中完成,該檔案位於專案資料夾中,在我們的例子中是 my_tennis_club
資料夾,您還必須在此處指定專案執行的主機名
示例
將除錯屬性設定為 False
,並允許專案在您的本地主機上執行
my_tennis_club/my_tennis_club/settings.py
:
.
.
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
ALLOWED_HOSTS = ['*']
.
.
重要提示: 當 DEBUG = False 時,Django 要求您指定允許此 Django 專案執行的主機。
在生產環境中,這應替換為正確的域名
ALLOWED_HOSTS = ['yourdomain.com']
在瀏覽器視窗的位址列中輸入 127.0.0.1:8000/masfdfg/
,您將看到內建的 404 模板

自定義 404 模板
Django 將在 templates
資料夾中查詢名為 404.html
的檔案,並在發生 404 錯誤時顯示它。
如果不存在此類檔案,Django 會顯示您在上面示例中看到的“未找到”訊息。
要自定義此訊息,您只需在 templates
資料夾中建立一個名為 404.html
的檔案,並用您想要的任何內容填充它
my_tennis_club/members/templates/404.html
:
<!DOCTYPE html>
<html>
<title>錯誤地址</title>
<body>
<h1>糟糕!</h1>
<h2>我找不到您請求的檔案!</h2>
</body>
</html>
在瀏覽器視窗的位址列中輸入 127.0.0.1:8000/masfdfg/
,您將看到自定義的 404 模板
