bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Django3_Url控制系統和View視圖-創新互聯

一.URL控制系統
1.簡單說明
URL配置的本質是通過URL與對應的View視圖形成映射,我們在調用URL時會自動找到對應的view進行邏輯處理,及通過URL告訴Django調用那一段View代碼.
2.格式
urlpatterns = [
url(‘正則表達式URL1’,views視圖函數,[參數],[別名]),
url(‘正則表達式URL2’,views視圖函數,[參數],[別名]),
]
參數說明:
?一個正則表達式字符串,Django會從上往下一次匹配url,匹配有值則停止往下查找;
?一個可調用的視圖函數
?可選的要傳給視圖函數的默認參數(字典形式)
?一個可選的別名name參數,如果有了別名,在調用時可以直接用該別名,這樣修改URL,其他使用別名的應用則不用修改
例如:
Django3_Url控制系統和View視圖
Django3_Url控制系統和View視圖

成都創新互聯公司公司2013年成立,先為柯城等服務建站,柯城等地企業,進行企業商務咨詢服務。為柯城企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

3.命名分組函數
命名分組函數分為:有命名分組函數和無命名分組函數,他們是通過url中的正則表達式(表達式中帶小括號進行分組)是否指定名字來區分。正則表達式分組并指定了名字則為有命名分組函數,正則表達式分組但未指定了名字則為無命名分組函數。
3.1 不屬于兩者范疇
Django3_Url控制系統和View視圖
3.2 無命名分組函數
Django3_Url控制系統和View視圖
Django3_Url控制系統和View視圖
3.3 有命名分組函數
Django3_Url控制系統和View視圖

Django3_Url控制系統和View視圖
效果圖:
Django3_Url控制系統和View視圖
4.別名
我們通過,url來映射url與view視圖之間的關聯,如果其他地方需要用到我們的url時,我們可以直接進行引用,例如在form表單中,點擊提交之后可以使用action來跳轉到另外一個url,此時我們可以直接在form的action中直接引用需要的url。但是如果直接引用,則有以下不合理的地方:
a.隨著url中url地址的修改則需要修改所有到它的地方,可能會有遺漏的地方;
b.如果url地址比較長時,則所有引用的地方均需要進行重復編寫,此時量比較大;
此時,我們可以直接使用別名的形式進行處理,如圖url別名設置:
Django3_Url控制系統和View視圖

引用方式如圖:
Django3_Url控制系統和View視圖
5.Url路由分發
在前面所有的例子中,我們只有一個app應用,如果一個項目有多個不同app引用時,我們把所有的url都放在urls.py中,不僅會顯得十分混亂而且有時還會影響正常功能的使用(比如APP1中有一個url有問題,但是APP2中所有url正常,此時APP1將會影響APP2的正常使用)。此時,我們可以使用url路徑分發機制來處理,如圖:
項目的url(項目中統籌向下分發的url):
Django3_Url控制系統和View視圖

APP應用中的url設置:
Django3_Url控制系統和View視圖
Django3_Url控制系統和View視圖
6.

二.View視圖函數
View主要是用來處理邏輯的模塊,web中通過接受請求并處理請求并將處理的結果返回給請求對象。其中主要是通過http協議來完成請求的。
HTTP請求中產生兩個核心對象:
http請求:HttpRequest對象;
http響應:HttpResponse對象;
http模塊的位置是在django.http中。
1.HttpRequest
HttpRequest對象是由django框架內部自己自動創建的,我們在定義每個方法時必須要帶上它,名字可自定義,但建議使用request。也就是說,django的view模塊中所有定義的函數,必須帶上一個request的參數,且request是django在接收到請求后自己創建的對象。HttpRequest對象的屬性和方法實際上就是這個request的屬性和方法。
HttpRequest對象的主要方法:
1.1 Request.method: http請求的方法類別,分為GET和POST兩種;
1.2 request.GET.get('key'):http通過GET請求傳到HttpRequest的字典對象,再用get方法通過關鍵字獲取對應的value;
1.3 request.POST.get('key'):http通過POST請求傳到HttpRequest的字典對象,再用get方法通過關鍵字獲取對應的value;
1.4 Request.path:獲取url的鏈接,返回值不帶參數;
1.5 request.get_full_path():獲取url的鏈接,若是通過get傳輸,則此處的值返回的是帶參數值的url;
如圖:
Django3_Url控制系統和View視圖
1.6
2.HttpResponse對象
對于HttpResponse對象來說,它和HttpRequest對象不同,前者必須要自己創建,而后者是django自己自動創建的。每個view請求的處理方法必須返回一個HttpResponse。
HttpResponse對象的常用方法:
2.1 HttpResponse():將內容返回到頁面上,此處不需要加request參數,如圖:
Django3_Url控制系統和View視圖
2.2 render():頁面渲染(將html經過django后臺處理后將頁面效果渲染到瀏覽器中),推薦使用。
格式: render(request,’前端.html’)注:request參數必帶;
例如:
Django3_Url控制系統和View視圖
注:其實,render()最終返回的依然是一個HttpResponse對象,源代碼如下圖所示:
Django3_Url控制系統和View視圖
2.3 render_to_response():也是頁面渲染(將html經過django后臺處理后將頁面效果渲染到瀏覽器中)
格式:render_to_response(’前端.html’),與render()作用一樣,但render_to_response()不需要帶request,且render_to_response()在使用工程中可能出現問題。推薦使用render()方法。
例如:
Django3_Url控制系統和View視圖
注:其實,render()最終返回的依然是一個HttpResponse對象,源代碼如下圖所示:
Django3_Url控制系統和View視圖
3.View中局部變量加載到template(html文件)中的兩種方式
a.通過key:value鍵值對字典的形式通過key獲取到對應的value并加載到對應的HTML文件中,如圖所示:
Django3_Url控制系統和View視圖
對應的HTML引用view中變量的方式如圖所示:
Django3_Url控制系統和View視圖
此方法如果HTML中有N多個需要獲取view中的局部變量時,則寫的key/value鍵值對將添加很多,此時會比較麻煩,但是在實際使用過程中,我們在view中定義的局部變量并不會很多,推薦使用該種方式。
b.通過locals()函數將view中的所有局部變量都加載到HTML中,如圖所示:
Django3_Url控制系統和View視圖
對應的HTML文件加載view中的參數方式如圖所示:
Django3_Url控制系統和View視圖
此時,view中使用什么變量名,HTML中也就使用相同的變量名,此時不再使用key獲取對應的value值的方式。
4.redirect()
redirect()是跳轉到某一個指定的url,參數為指定要跳轉的url;如圖所示:
Django3_Url控制系統和View視圖
內部原理:使用redirect(url)進行跳轉時,先去對應的url.py中匹配對應的redirect中指定的url,匹配成功后再去查找url對應的view函數并執行該函數。
注意:redirect()與render()的區別:
A.redirect()中必須跟的是url路徑,而render()中必須是需要渲染的html文件名稱;
B.redirect()跳轉之后,url會變成redirect(url)指定跳轉的url,而使用render()則url不會發生變化。
如圖:
Django3_Url控制系統和View視圖

Django3_Url控制系統和View視圖
三.相關代碼地址
https://github.com/DoneZj/django3.git

歡迎關注筆者個人公眾號:
Django3_Url控制系統和View視圖

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

新聞名稱:Django3_Url控制系統和View視圖-創新互聯
新聞來源:http://vcdvsql.cn/article8/cdgeop.html

成都網站建設公司_創新互聯,為您提供小程序開發搜索引擎優化標簽優化電子商務手機網站建設商城網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都app開發公司