Django( 學習第三部 Django的請求生命週期)
阿新 • • 發佈:2020-10-08
目錄
Django的請求生命週期
url路由層
Django的請求生命週期
url路由層
url 路由匹配
注意事項:
- url方法,第一個引數是正則表示式,只要第一個引數能夠匹配到內容,就會立刻停止向下匹配,並且直接執行對應的檢視函式
- 輸入url的時候會預設加斜槓,若沒有加Django會做重定向,自動新增一個斜槓再次進行匹配.
- 關閉Django自動新增斜槓進行匹配 APPEND_SLASE = Fales / True 預設為True 自動新增斜槓.
- 有名分組和無名分組不可以混合使用,(有名 分組可以有多個,無名分組也可以有多個,切記倆者不可以混用)
無名分組
url(r'^text/(\d+)/',views.test) def tset(request,xx) print(xx) return HttpResponse('tset')
無名分組就是將括號內正則表示式匹配到的內容當作位置引數傳遞給後面的檢視函式
有名分組
url(r'^add/(?P<a>\d+)/',views.test) def tset(request,a) print(a) return HttpResponse('tset')
有名分組就是將括號內正則表示式匹配到的內容當作關鍵字引數傳遞給後面的檢視函式
反向解析:
通過一些方法得到一個結果,該結果可以直接訪問對應的url觸發檢視函式
#先給路由與檢視函式起一個別名 url(r'*func_kk/',views.func,name='xxx') 前端解析 < a href = "{% ooo %}">111</a> 後端解析 form django.shortcuts import render,HttpResponse,redirect,reverse reverse("ooo")
無名分組的反向解析
# 無名分組對的反向解析 url (r'^index/(\d+)/',views.inde,name='ooo') 前端解釋 {% url "ooo" 123 %} 後端解析 reverse( 'ooo' ,args=(1,) ) 這個數字在寫程式碼的時候應該放什麼 數字一般情況下放的是資料的主鍵值 資料的編輯和刪除 url(r'^edit/(\d+)/',views.edit,name="ooo") def edit(request,edit_id): reverse('ooo' ,args=(edit_id,)) {% for user_obj in user_queryset %} <a href= {% url 'ooo' user_obj.id %} >編輯</a> {% endfor%}
有名分組的反向解析
# 有名分組的反向解析 url(r'^index/(?P<year>\d+)/',views.index,name='ooo') 前端解析 <a href ='{% url 'ooo' year=123 %}'>111</a> #(瞭解) < a href = '{% url "ooo" 123%}'>123</a> #記憶 後端解析 print(reverse("ooo" , kwargs={'yesr':123})) #(瞭解) print( reverse('ooo',args=(111,)))