Django來敲門~第一部分【4. 建立第一個模組應用】
**大成若缺,其用不弊。大盈若衝,其用不窮。大直若屈。大巧若拙。大辯若訥。靜勝躁,寒勝熱。清靜為天下正 ** ——老子《道德經》
本章內容
- 建立應用(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來敲門~第一部分【3. 建立第一個專案】Django
- Django來敲門~第一部分【1.概述】Django
- Django來敲門~第一部分【2. 安裝】Django
- [part 3] 第一個 Django 應用Django
- Django建立第一個專案Django
- 建立第一個django專案Django
- Django來敲門~第一部分【8.網頁中的css/js/image處理Django網頁CSSJS
- [part 1] 第一個 Django 應用程式Django
- PyCharm入門第一步(四):建立和執行第一個Django專案PyCharmDjango
- Git 學習以及建立第一個應用Git
- Django建立app應用和admin模組DjangoAPP
- 第一部分 入門|第一章 Django Python實戰DjangoPython
- 使用UML建立模組庫——第一部分(三)
- Xamarin iOS編寫第一個應用程式建立工程iOS
- 建立第一個ArcGIS API for Silverlight應用API
- 第一個Cassandra應用
- 第一個 Angular 應用程式Angular
- 你的第一個Django程式Django
- PyCharm入門第一步(二):除錯第一個Python應用程式PyCharm除錯Python
- PyCharm入門第一步(三):測試第一個Python應用程式PyCharmPython
- [python網站開發] 一.Django入門知識及建立第一個網站Python網站Django
- 開始使用ASP.NET Core - 建立第一個Web應用ASP.NETWeb
- 使用Android Studio建立第一個Hello World應用程式Android
- 第一章 建立部落格應用
- MyEclipse教程:使用UML建立模組庫——第一部分(一)Eclipse
- MyEclipse教程:使用UML建立模組庫——第一部分(二)Eclipse
- 第一章 第一個簡單的iOS應用iOS
- [譯]使用 Web3 和 Vue.js 來建立你的第一個以太坊 dAPP(第一部分)WebVue.jsAPP
- 開發第一個Flink應用
- 2、Node.js 第一個應用Node.js
- 【Netty】第一個Netty應用Netty
- PyCharm入門第一步:建立並執行第一個Python專案PyCharmPython
- 快速入門:構建您的第一個 .NET Aspire 應用程式
- 學點簡單的Django之第一個Django程式Django
- django學習記錄--第一個網頁“hello django”Django網頁
- 宜信開源|手把手教你建立第一個Davinci應用
- [譯] 使用 Web3 和 Vue.js 來建立你的第一個以太坊去中心化應用程式(第三部分)WebVue.js中心化
- 使用Kotlin構建MVVM應用程式—第一部分:入門篇KotlinMVVM