當(dāng)前位置:
首頁 >
Django基于正则表达式的URL
發(fā)布時間:2025/3/20
27
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Django基于正则表达式的URL
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 關(guān)于正則的說明
url(r’^detail-(\d+)-(\d+).html’,views.detail), 當(dāng)客戶端輸入 127.0.0.1:8000/detail-2-9.html時,Django默認(rèn)可以得到3個參數(shù),分別是request,
-(\d+)-,-(\d+)-。 所以定義detail函數(shù)的時候,需要把這3個參數(shù)都接收,否則會報錯。當(dāng)然了是嚴(yán)格按照順序來寫/獲取到的。
def detail(request,nid,uid):print(nid,uid)2.默認(rèn)情況下是嚴(yán)格按照順序來獲取得。但是如果想調(diào)整形式參數(shù)的時候,就會影響到整個程序。基于此,Django還支持正則表達(dá)式的分組。
把第1個匹配的賦值給nid,把第2個匹配的賦值給uid.
url(r’^detail-(?P\d+)-(?P\d+).html’,views.detail),
分組寫的好處是,下列2個函數(shù)就無區(qū)別了。形式參數(shù)的位置不會影響代碼的值。
def detail(request,nid,uid)
def detail(request,uid,nid)
3. args:接收的是元組
kwargs:接收的是字典類型的。
4.本節(jié)筆記
1.一個URL對應(yīng)一個函數(shù)或者對應(yīng)一個類 url(r'^index/',views.index),url(r'^home/',views.Home.as_view()), 2.一類URL對應(yīng)一個函數(shù)或類 url(r'^detail-(\d+)-(\d+).html',views.index), 嚴(yán)格按照形式參數(shù)的位置給它傳遞的。 3.一類URL對應(yīng)一個函數(shù)或類(用正則表達(dá)式的方法來做)推薦使用的。 url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html',views.index), 形式參數(shù)的位置不影響值。 傳遞參數(shù)的時候,是按照nid=1,uid=9,的樣式傳遞的。def detail(request,*args,**kwargs) #args元組,kwargs字典。 如果是以url(r'^detail-(\d+)-(\d+).html',views.index)的形式傳遞的話,則都傳到args里面了。因為傳遞形式是:1,2的格式。 如果是以url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html',views.index)的形式的話,都傳到kwargs里。因為傳遞形式是:nid=1,uid=2的格式總結(jié)
以上是生活随笔為你收集整理的Django基于正则表达式的URL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mozilla的Python3使用情况
- 下一篇: 使用selenium和pyquery爬取