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