1. 程式人生 > >【4】Django 建立第一個模組應用

【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