安裝 Django 一下子就完成了, 接下來要在 Django 裡增加新的頁面. 這篇文章的資料來源:
https://developer.mozilla.org/zh-TW/docs/Learn/Server-side/Django/skeleton_website
首先, 創立專案:
mkdir locallibrary
cd locallibrary
django-admin startproject locallibrary
cd locallibrary
建立 catalog app:
Linux/macOS 指令:
python3 manage.py startapp catalog
Windows 指令:
py -3 manage.py startapp catalog
註冊 catalog app
編輯檔案: locallibrary/locallibrary/settings.py
每次 startapp 之, 請到 settings.py 增加下面紅字的部份:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'catalog.apps.CatalogConfig',
]
說明: 上面這行, 其實就是出現在檔案: /locallibrary/catalog/apps.py
如果之後有修改 app 裡的內容, 記得用下面指令同步 Django 的監控:
Linus / macOS:
python3 manage.py makemigrations catalog
Windows
py -3 manage.py makemigrations catalog
修改 settings.py 裡其他的設置
檔案: /locallibrary/locallibrary/settings.py
LANGUAGE_CODE = ‘zh-Hant’
TIME_ZONE = ‘Asia/Taipei’
DEBUG
. 這個會在 debug 日誌裡輸出錯誤信息,而不是輸入 HTTP 的返回碼。在生產環境中,它應設置為 false,因為輸出的錯誤信息,會幫助想要攻擊網站的人。
修改 URL 映射器(urls.py)
檔案: /locallibrary/locallibrary/urls.py 增加下面紅字內容:
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
path('catalog/', include('catalog.urls')),
]
說明: 遇到網址為 catalog/ 時, 轉發請求到模塊 catalog.urls(/locallibrary/catalog/urls.py 的文件)。
複製上面的 /locallibrary/locallibrary/urls.py 檔案到: /locallibrary/catalog/urls.py , 並修改內容為下:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name="index"),
]
說明: 遇到 /catalog 時, 到 views object 裡, 存取 index method.
修改 /locallibrary/catalog/views.py 內容為下:
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("Hello, catelog view.")
path()
函數還指定一個name
參數,它是此特定 URL 映射的唯一標識符。 您可以使用該名稱來“反向”映射器,即,動態創建指向映射器旨在處理的資源的 URL。 例如,通過在模板中添加以下鏈接,我們可以使用 name 參數從任何其他頁面鏈接到我們的主頁:
<a href="{% url 'index' %}">Home</a>.
Copy to Clipboard
備註: 我們可以對上面的鏈接進行硬編碼 (例如<a href="/catalog/">Home</a>
), 但是如果我們更改主頁的模式 (例如更改為 /catalog/index
) 則模板將不再 正確鏈接。 使用反向 URL 映射更加靈活和健壯!
執行網址:
http://127.0.0.1:8000/catalog/
執行畫面: