Django來敲門~第一部分【4. 建立第一個模組應用】

大牧莫邪發表於2017-06-08

**大成若缺,其用不弊。大盈若衝,其用不窮。大直若屈。大巧若拙。大辯若訥。靜勝躁,寒勝熱。清靜為天下正 ** ——老子《道德經》

本章內容

  • 建立應用(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


Django來敲門

相關文章