Django-MVT之V層總結

1、視圖

在Django中,經過瀏覽器去請求一個頁面時,使用視圖函數來處理這個請求的,視圖函數處理以後,要給瀏覽器返回頁面內容。html

一、視圖函數的使用python

  1. 定義視圖函數
    視圖函數定義在views.py中。
    例:
    def index(request):
    #進行處理。。。
    return HttpResponse(‘hello python’)
    視圖函數必須有一個參數request,進行處理以後,須要返回一個HttpResponse的類對象,hello python就是返回給瀏覽器顯示的內容。
    2)進行url配置
    url配置的目的是讓創建url和視圖函數的對應關係。url配置項定義在urlpatterns的列表中,每個配置項都調用url函數。
    url函數有兩個參數,第一個參數是一個正則表達式,第二個是對應的處理動做。
    配置url時,有兩種語法格式:
    a) url(正則表達式,視圖函數名)
    b) url(正則表達式,include(應用中的urls文件))
    工做中在配置url時,首先在項目的urls.py文件中添加配置項時,並不寫具體的url和視圖函數之間的對應關係,而是包含具體應用的urls.py文件,在應用的urls.py文件中寫url和視圖函數的對應關係。

二、 url匹配的過程
在項目的urls.py文件中包含具體應用的urls.py文件,應用的urls.py文件中寫url和視圖函數的對應關係。
當用戶輸入如http://127.0.0.1:8000/aindex時,去除域名和最前面的/,剩下aindex,拿aindex字符串到項目的urls文件中進行匹配,配置成功以後,去除匹配的a字符,拿剩下的index字符串繼續到應用的urls文件中進行正則匹配,匹配成功以後執行視圖函數index,index視圖函數返回內容hello python給瀏覽器來顯示。web

三、視圖的功能正則表達式

接收請求,進行處理,與M和T進行交互,返回應答。
	返回html內容 HttpResponse,也可能重定向 redirect,還能夠返回json數據。

四、視圖函數使用django

1)定義視圖函數
request參數必須有。是一個HttpRequest類型的對象。參數名能夠變化,
但不要更改。
2)配置url
創建url和視圖函數之間的對應關係。
2.2 url配置的過程
1)在項目的urls文件中包含具體應用的urls文件,在具體應用的urls文件中包含具體url和視圖的對應關係。
2)url配置項是定義在一個名叫urlpatterns的列表中,其中的每個元素就是一個配置項,每個配置項都調用url函數。
3.url匹配的過程
url:http://127.0.0.1:8000/aindex?a=1json

  1. 去除域名和後面的參數,剩下/aindex,再把前面的/去掉,剩下aindex
  2. 拿aindex先到項目的url.py文件中進行從上到下的匹配,匹配成功以後執行後面對應的處理動做,就是把匹配成功的部分a字符去除,而後拿剩下的部分index到應用的urls.py文件中再進行從上到下的匹配。
  3. 若是匹配成功則調用相應的視圖產生內容返回給客戶端。若是匹配失敗則產生404錯誤。

五、錯誤視圖瀏覽器

404:找不到頁面,關閉調試模式以後,默認會顯示一個標準的錯誤頁面,若是要顯示自定義的頁面,則須要的templates目錄下面自定義一個404.html文件。
a)url沒有配置
b)url配置錯誤
500: 服務器端的錯誤。
a)視圖出錯
網站開發完成須要關閉調試模式,在settings.py文件中:
DEBUG=False
ALLOWED_HOST=[ ‘*’]服務器

6.捕獲url參數框架

進行url匹配時,把所須要的捕獲的部分設置成一個正則表達式組,這樣django框架就會自動把匹配成功後相應組的內容做爲參數傳遞給視圖函數。
1)位置參數
位置參數,參數名能夠隨意指定
2)關鍵字參數:在位置參數的基礎上給正則表達式組命名便可。
?P<組名>
關鍵字參數,視圖中參數名必須和正則表達式組名一致.svg

七、類視圖的使用
例如:

class IndexView(View):

		def get(self,request):
			pass
		def post(self,request):
			pass