前置作業
在開始設定之前,若你還沒將環境建立起來的話,先安裝 Django 並建立專案:
# 安裝 Django
python -m pip install Django
# 查看 Django 版本
python -m django --version
# 建立 Django 專案
django-admin startproject <project-name>
專案預設結構如下:
project-name/
├── project-name
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
建立 View
使用 Django 的好處就是它提供了許多預設機制,我們只需要去改寫部分細節、或者是定義自己想要的處理方式即可。以處理 Error 404 來說,Django 其實已經有一個預設的處理機制與頁面,因此我們不需要從零開始。當 Error 404 出現時,Django 會針對這個狀況指定一個 View (也就是我們程式邏輯所在部分),所以我們可以在 view.py 中加入以下程式碼:
# Error 404
class Error404View(View):
def get(self, request):
# Do something if you want
return render(request, 'path-to-your/error404.html')
# Error 500
class Error500View(View):
def get(self, request):
# Do something if you want
return render(request, 'path-to-your/error500.html')
從上面的程式中,你可以看到我們使用兩個 HTML 檔案,這就是我們到時候要呈現的頁面。而通常我們的 HTML 檔案都會放在 templates 資料夾中,使用的方式跟一般的頁面是一樣的,頁面的內容我就不在這邊討論。
修改 URL 設定檔
前面的步驟還沒有辦法讓 Django 知道我們新的 View 要怎麼用以及何時用,因此我們現在要透過 URL 設定檔將它們連結起來,開啟 urls.py 並將以下內容加入:
from django.conf.urls import handler404, handler500
# 將我們剛剛設定的 View 引入
from your-app.views import Error404View, Error500View
urlpatterns = [
...
]
# 讓系統知道對應的 View
handler404 = Error404View.as_view()
handler500 = Error500View.as_view()
如果你的 Django 專案底下有多個 App,你需要把這段內容加入你專案主要的 urls.py 裡面。
測試
請記得若你開啟 Debug 模式,剛剛設定的頁面是沒有辦法正常呈現的。你必須要到 settings.py 中把 Debug 模式關閉才能看到結果。
DEBUG = False
Environment :
・ Debian
Reference :
・ Django - Writing views