1. 程式人生 > >【day 12】python程式設計:從入門到實踐學習筆記-基於Django框架的Web開發-Django入門(三)

【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/可以看到