【4】Django 建立第一個模組應用
大成若缺,其用不弊。大盈若衝,其用不窮。大直若屈。大巧若拙。大辯若訥。靜勝躁,寒勝熱。清靜為天下正
——老子《道德經》
本章內容
- 建立應用(app)
- 開發第一個檢視(View)
- URL訪問配置的巢狀(urls)
1. 建立專案的子模組應用
上一節內容中,我們建立了一個django專案mysite/,在專案的骨架的基礎上,我們再建立基於專案的一個子模組投票模組,模組名稱暫時定義為polls
進入專案目錄,執行如下命令,在mysite/專案基礎上建立一個模組應用polls
python3 manage.py startapp polls
上述命令執行完成之後,會在我們的專案資料夾中,自動生成一個polls應用模組資料夾,包含模組需要的基本檔案結構,如下:
2. 建立模組應用中的第一個檢視
模組中的檢視對應的是views.py
檔案,開啟polls/views.py
檔案,建立如下的方法
# 引入需要的模組
from django.http import HttpResponse
# 定義一個處理方法
def index(request):
return HttpResponse("Hello Django!")
檢視建立完成後,我們要將檢視和對應的URL地址進行關聯,專案中的url地址對映的主要配置檔案是urls.py
,在polls
模組中建立urls.py
配置檔案,並修改polls/urls.py
檔案內容如下:
# 引入需要的模組 from django.conf.urls import url from . import views # 配置url地址和view檢視的對映關係 urlpatterns = [ url(r"^$", views.index, name="index") ]
配置好我們模組應用中的urls地址對映之後,需要將這個模組的對映關係包含到我們的根模組mysite
的對映關係中才能生效,編輯mysite/urls.py
修改如下:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r"^admin/", admin.site.urls),
url(r"^polls/", include("polls.urls"))
]
在上述配置中,我們通過urlpatterns來關聯對映關係,整體關係如下圖所示:
1.客戶端發起請求:
http://localhost:8000/polls
2.專案接收到使用者請求,url地址->
polls/
3.進入專案的對映檔案
urls.py
中進行正則匹配:url(r"^polls", include("polls/urls"))
,開始開啟通過include
包含的polls.urls
子模組對映檔案polls/urls.py
4.進入專案子模組
polls
的對映檔案中進行匹配,由於polls/
路徑已經匹配通過,開始匹配polls/
後面的路徑-> 路徑為:"";
進入polls/urls.py
中查詢對應的路徑->url(r"^$", view.index, name="index")
5.匹配到views.index,開始開啟子模組的
views.py
檢視檔案,執行index
檢視方法
6.
views.py
中的檢視方法index()
返回了一條字串,列印到我們瀏覽器的頁面上
OK,經過上面的分析之後,我們啟動專案python3 manage.py runserver
,然後通過瀏覽器進行訪問
附註:url(regex, view, kw, name)引數解析
- 引數regex:這是一個正則表示式,用於匹配接收到的url路徑,Django會按照順序進行正則表示式的匹配,匹配成功就會呼叫指定的資源
- 引數view:當第一個正則表示式的路徑匹配成功時,Django就會開始呼叫view引數指向的檢視函式,並且將django.http.HttpRequest內建物件作為函式的第一個引數傳遞給函式並且呼叫執行函式
- 引數kw:任意關鍵字都可以作為引數傳遞給函式
- 引數name:給當前的url命名,命名之後就可以在任意地方使用這個url