Django路由分配及渲染
一、url路由分配
1.url配置的本質是將瀏覽器傳遞過來的路徑和參數與服務器中的視圖向匹配,並返回瀏覽器相應的視圖函數。
2.url路徑path規則 path(route, view, kwargs=None, name=None)
route:一個字符串的url規則,
views:是一個視圖
kwargs:額外的參數,是一個字典(額外參數與route規則中的形參沖突的時候,以額外參數為先)
name:url規則的名字
3.path傳參 path(‘test/<xx>/<xx>/’, views.test)當路徑匹配成功後,會調用後面的視圖函數
使用<>從傳遞過來的url中獲(多個)值,可以配置一個轉化器類型(converter type)來匹配指定的字符,如果沒有配置轉換器則默認匹配任何字符,當然也匹配/字符。
path中<>形參名必須和對應視圖函數中形參一致,參數才能傳遞給視圖函數
4.path轉換器
str 匹配除路徑符/外的任意非空字符,這是默認形式
int 匹配正整數,包含數字0
slug 匹配字母、數字以及橫杠、下劃線組成的字符串
uuid 匹配格式化的uuid
path 匹配任意字符串,包含路徑字符串
5.path轉換器的使用
直接在路徑<>中使用 path(‘index/<int:pk>‘, views.test2),
6re_path 正則表達式匹配
當path轉換器不能滿足約束條件,則使用正則表達式re_path
首先在urls中導入re_path模塊 from django.urls import re_path
其次在urlpatterns中寫入re_path路徑 re_path(r‘^index/(?P<year>\d{4})/(?P<month>[1-9]|1[1-2])/$‘, views.test3),
然後再地址欄中輸入相應的url http://127.0.0.1:8000/index/2018/2/回車
註意通過正則匹配得到的參數類型是str,要想得到整數類型得在views函數中對其進行轉換
二、路由重定向 redirect
redirect可以返回指定的網址請求,起到重定向的作用
三、路徑重命名 reverse
路徑重命名是將瀏覽器發送過來的路徑,調用匹配的視圖函數,然後在視圖函數中通過reverse跳轉到name所在的路徑視圖
也適用於服務器網址變更後,瀏覽器發送之前的路徑請求,通過reverse將舊的路徑請求轉化成新的路徑請求
四、Django調用HTML源碼
依次在項目文件下創建templates文件夾,templates下創建APP應用名的文件夾,templates/app下創建HTML文件
然後再項目setting文件中配置templates文件夾的路徑
之後在視圖文件中定義視圖函數,有兩種方法,如步驟④
最後在urls文件中關聯路徑
在瀏覽器中輸入 http://127.0.0.1:8000/aaa/回車
Django路由分配及渲染