使用python開(kāi)發(fā)web中,使用Django,使你能夠以最小的代價(jià)構(gòu)建和維護(hù)高質(zhì)量的Web應(yīng)用。在Python各種web框架中,Django的文檔最完善,雖然django也有自己的部分缺點(diǎn),但是用它來(lái)快速開(kāi)發(fā)一些Web運(yùn)用是很不錯(cuò)的。
想要了解django,我們可以先了解一下當(dāng)一個(gè)url請(qǐng)求過(guò)來(lái)后django是怎么工作的,是怎么返回我們的請(qǐng)求內(nèi)容的。
django的所有開(kāi)始都在settings文件。當(dāng)開(kāi)始運(yùn)行django服務(wù)的時(shí)候,django會(huì)在當(dāng)前運(yùn)行目錄下找到settings文件。settings文件包含了django的所有的配置信息。
當(dāng)在瀏覽器輸入U(xiǎn)RL后,Django接受到請(qǐng)求,然后會(huì)在 settings文件中找到ROOT_URLCONF ,根據(jù)ROOT_URLCONF 的設(shè)置裝載 URLconf 。 然后按順序逐個(gè)匹配 URLconf 里的 URLpatterns,直到找到一個(gè)匹配的。 當(dāng)找到這個(gè)匹配 的 URLpatterns 后就調(diào)用相關(guān)聯(lián)的 view視圖函數(shù),視圖函數(shù)返回一個(gè)HttpResponse,Django 轉(zhuǎn)換 HttpResponse 為一個(gè)適合的 HTTP response, 以 Web page 顯示出來(lái)。至此,就是django接受一個(gè)請(qǐng)求之后所走的基本流程。
當(dāng)然,在正常的請(qǐng)求流程中,所有的請(qǐng)求返回都是由中間件完成的。中間件,就是處理HTTP的request和response的。大致程序流程如:
django是mvt模式,其中v就是這個(gè)顯示邏輯部分,對(duì)于一個(gè)簡(jiǎn)單的django應(yīng)用,一般包含4個(gè)Python的文件,(models.py ,views.py , urls.py ) 和html模板文件 。
models.py 文件主要用一個(gè) Python 類(lèi)來(lái)描述數(shù)據(jù)表。 稱為 模型(model) 。 運(yùn)用這個(gè)類(lèi),你可以通過(guò)簡(jiǎn)單的 Python 的代碼來(lái)創(chuàng)建、檢索、更新、刪除 數(shù)據(jù)庫(kù)中的記錄而無(wú)需寫(xiě)一條又一條的SQL語(yǔ)句,當(dāng)然你也可以選擇寫(xiě)原生的sql語(yǔ)句。
views.py文件包含了頁(yè)面的業(yè)務(wù)邏輯。view文件里面一般包含大量的函數(shù),這些函數(shù)也成為視圖函數(shù)。簡(jiǎn)單來(lái)講,view函數(shù)可以說(shuō)是接收httprequest對(duì)象,然后處理,返回response的主體函數(shù)。在Django處理一些簡(jiǎn)單的邏輯關(guān)系的時(shí)候,可以用直接用函數(shù)模式來(lái)進(jìn)行處理。
如上,函數(shù)接收request為參數(shù),中間隨便處理一些邏輯,然后把內(nèi)容放到response中返回,剩下的事情django自動(dòng)完成。view的中心思想就是這樣,處理顯示部分的邏輯。
但是當(dāng)我們處理一些比較復(fù)雜的邏輯的時(shí)候,這樣寫(xiě)就比較不利于維護(hù),而且函數(shù)體也會(huì)很復(fù)雜,這時(shí)我們一般用django的class來(lái)表達(dá)邏輯。由于class可以繼承,可以省去很多代碼復(fù)寫(xiě).
urls.py 指出了什么樣的 URL 調(diào)用什么的視圖。上面說(shuō)的當(dāng)你在瀏覽器中輸入一個(gè)URL之后,django接受到請(qǐng)求之后,會(huì)根據(jù)你請(qǐng)求的url來(lái)調(diào)用相應(yīng)的視圖函數(shù)。
html 模板,它描述了這個(gè)頁(yè)面的設(shè)計(jì)是如何的。 使用帶基本邏輯聲明的模板語(yǔ)言。簡(jiǎn)單來(lái)說(shuō),頁(yè)面想要顯示成什么樣子,都是這個(gè)文件決定的。
-
Web
+關(guān)注
關(guān)注
2文章
1266瀏覽量
69570 -
Django
+關(guān)注
關(guān)注
0文章
44瀏覽量
10398
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論