在 Django 中,配置 404 和 500 錯誤頁面需要以下步驟:
1. 創建自定義錯誤頁面模板
首先,創建兩個模板文件,分別用于 404 和 500 錯誤頁面。假設你的模板目錄是 templates/
。
404 頁面模板
創建文件 templates/404.html
,內容如下:
HTML復制
{% extends 'base.html' %} <!-- 如果有公共布局可以繼承 -->
{% block content %}
<div class="parent-container"><div class="error-container"><div class="error-icon">??</div><div class="error-code">404</div><h2>頁面未找到</h2><p>您請求的頁面不存在,請檢查網址是否正確。</p><a href="{% url 'index' %}">返回首頁</a></div>
</div>
{% endblock %}
預覽
500 頁面模板
創建文件 templates/500.html
,內容如下:
HTML復制
{% extends 'base.html' %} <!-- 如果有公共布局可以繼承 -->
{% block content %}
<div class="parent-container"><div class="error-container"><div class="error-icon">?</div><div class="error-code">500</div><h2>服務器錯誤</h2><p>服務器遇到了問題,請稍后再試。</p><a href="{% url 'index' %}">返回首頁</a></div>
</div>
{% endblock %}
預覽
2. 配置 Django 設置
在你的 Django 項目設置文件(通常是 settings.py
)中,指定自定義錯誤頁面的模板路徑。
Python復制
# 設置 404 和 500 錯誤頁面模板
HANDLER404 = 'your_project_name.views.custom_page_not_found'
HANDLER500 = 'your_project_name.views.custom_server_error'
將 your_project_name
替換為你的 Django 項目名稱。
3. 創建視圖函數
在你的視圖文件(通常是 views.py
)中,添加處理 404 和 500 錯誤的視圖函數。
Python復制
from django.shortcuts import render
from django.http import HttpResponseServerError, HttpResponseNotFounddef custom_page_not_found(request, exception):return render(request, '404.html', status=404)def custom_server_error(request):return render(request, '500.html', status=500)
4. 測試錯誤頁面
為了確保配置正確,你可以通過以下方式測試:
測試 404 頁面
訪問一個不存在的 URL,例如 http://localhost:8000/nonexistent-page
,應該會顯示自定義的 404 頁面。
測試 500 頁面
在視圖中故意拋出一個錯誤,例如:
Python復制
def test_error_view(request):raise ValueError("This is a test error")
然后訪問這個視圖的 URL,應該會顯示自定義的 500 頁面。
注意事項
-
調試模式:確保在生產環境中
DEBUG = False
,否則 Django 會顯示默認的調試錯誤頁面,而不是自定義的錯誤頁面。 -
模板繼承:如果項目中有公共的布局模板(如
base.html
),可以讓錯誤頁面模板繼承該布局以保持一致性。 -
樣式設計:根據項目的設計風格,調整錯誤頁面的樣式,使其與整個網站的風格一致。
通過以上步驟,你可以成功配置 Django 的 404 和 500 錯誤頁面,提升用戶體驗。
部署環境配置
1. 開啟生產環境模式
要使用自定義錯誤頁面,需要將項目設置為生產環境模式,也就是把?DEBUG
?設置為?False
。在?settings.py
?文件中找到并修改該配置:
python
# settings.py
DEBUG = False
注意:在開發環境中調試時,DEBUG
?設為?True
?會顯示詳細的錯誤信息,便于調試。但在生產環境中,為了安全起見,應將其設為?False
。同時,還需要設置?ALLOWED_HOSTS
,指定允許訪問該網站的域名或 IP 地址,例如:
python
# settings.py
ALLOWED_HOSTS = ['yourdomain.com', '127.0.0.1']
總結
- 創建處理 404 和 500 錯誤的視圖函數。
- 創建對應的錯誤頁面模板。
- 在項目的?
urls.py
?文件中配置錯誤處理視圖。 - 在部署環境中將?
DEBUG
?設置為?False
。
通過以上步驟,你就能在 Django 項目中自定義 404 和 500 錯誤頁面了。