【day 12】python程式設計:從入門到實踐學習筆記-基於Django框架的Web開發-Django入門(三)
學習筆記目錄
第十八章 Django入門(三)
建立網頁:學習筆記主頁
使用django建立網頁通常分三個階段:定義URL、編寫檢視和編寫模板。
首先必須定義URL模式,其描述了URL是如何設計的,讓django知道如何將瀏覽器請求與網站URL匹配,以確定返回哪個網頁。每個URL都被對映到特定的檢視——檢視函式獲取並處理網頁所需的資料。檢視函式通常呼叫一個模板,後者生成瀏覽器能夠理解的網頁。
對映URL
#learning_log/urls.py
from django.conf.urls import url
from django.contrib import admin
urlpatterns = [
url(r'^admin/' , admin.site.urls),
url(r'', include('learning_logs.urls', namespace='learning_logs')),
]
我們添加了一行程式碼來包含模組learning_logs.urls。實參namespace
能夠將learning_logs的URL同項目中的其他URL區分開來。
預設的urls.py儲存在learning_log資料夾中,我們需要在learning_logs中建立另外一個urls.py如下
#learning_logs/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
此模組中,urlpatterns
變數是一個列表,包含可在應用程式learning_logs中請求的網頁。
URL模式是一個對函式url()的呼叫,其包含三個實參:
+ 第一個是正則表示式,r'^$'
中的r
讓python把單引號對裡面的字串視為原始字串;脫字元^
表示檢視字串的開頭;美元符號$
表示檢視字串的末尾;整個字元表示式表示查詢開頭和末尾之間沒有任何東西的url。
+ 第二個是指定要呼叫的檢視函式。如果請求的URL與前述正則表示式匹配,django將呼叫views.index。
+ 第三個是將這個URL模式的名稱
index
,讓我們能夠在程式碼的其他地方引用他。當需要提供到這個主頁的連結時,我們都將使用這個名稱而不編寫URL。
編寫檢視
檢視函式接受請求中的資訊,準備生成網頁所需的資料,並將這些資料傳送給瀏覽器。
修改並新增:
#learning_logs/views.py
from django.shortcuts import render
def index(request):
return render(request, 'learning_logs/index.html')
函式render()
根據檢視提供的資料渲染相應。
當URL請求與我們定義的模式匹配時,django將在檔案views.py中查詢函式index()
,再將請求物件傳遞給這個檢視函式。
而這裡的函式render()
提供了兩個實參:原始請求物件以及一個可用於建立網頁的模板。
編寫模板
模板定義了網頁的結構。模板指定了網頁是啥樣的。而每當網頁被請求時,django將填入相關的資料。
在資料夾learning_logs中建立資料夾templates,又在這個資料夾中建立資料夾learning_logs。接著在最裡面的資料夾learning_logs中新建一個index.html。
<!-- index.html -->
<p>Learning Log</p>
<p>Learning Log helps you keep track of your learning, for any topic you're
learning about.</p>
最後在虛擬環境中runserver,並開啟http://127.0.0.1:8000/
可以看到