(Django)18.3建立網頁:學習筆記主頁

why_cant_i_change發表於2018-09-07

Django建立網頁的過程通常分為三個部分:1.定義URL 2.編寫檢視  3.編寫模板

18.3.1對映URL

開啟檔案learning_log中的urls.py,並且新增第二段程式碼,具體見如下程式碼:

from django.conf.urls import include,url   #匯入管理網站的函式和模組
from django.contrib import admin

#變數urlpatterns包含專案中的應用程式的URL
urlpatterns=[   
    url(r'^admin/',include(admin.site.urls)),   #包含模組admin.site.urls定義了可在管理網站中請求的所有URL
    url(r'',include('learning_logs.urls',namespace='learning_logs'))   #包含模組learning_logs.urls
]

預設的urls.py包含在檔案learning_log中,在learning_logs中建立另外一個urls.py

'''定義learning_logs的URL模式'''

from django.conf.urls import url
from . import views

urlpatterns = [

    url(r'^$',views.index,name='index'),   #urlpatterns是一個列表,包含可在應用程式learning_logs中請求的網頁
  
]

實際的URL模式是對函式url的呼叫,這個函式接受三個實參。

第一個是一個正規表示式,^表示匹配字串的開頭,$表示匹配字串的末尾,換言之這個正規表示式規定了一個開頭和末尾之間沒有任何東西的URL,而python忽略專案基礎的URL(http://localhost:8000/),故只有它與正規表示式匹配。

第二個指定了要呼叫的檢視函式,當URL與前面的正規表示式匹配時,Django會呼叫views.index類。

第三個實參將這個URL模式的名字指定為index,讓我們可以在其他地應用它。

18.3.2編寫檢視

開啟learning_logs中的views.py,進行檢視的編寫

這裡只是匯入了render函式,它根據檢視提供的資料渲染響應。

當URL請求與我們剛剛定義的模式匹配時,Django會在檔案views.py中查詢函式index(),再將請求物件傳遞給這個檢視函式。

from django.shortcuts import render
def index(request):
    return render(request,'learning_logs/index.html')   #這裡函式render()提供兩個實參:原始請求物件和一個可用於建立網頁的模板

18.3.3編寫模板

在learning_logs中------

index.html

<p>Learning Log</p>
<p>Learning Log helps you keep track of your learning,for any
topic you are learning about.</p>

 

相關文章