Django基於正規表示式的URL(2)

2022-02-20 15:24:45 字數 1528 閱讀 1255

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個引數都接收,否則會報錯。當然了是嚴格按照順序來寫/獲取到的。

2.預設情況下是嚴格按照順序來獲取得。但是如果想調整形式引數的時候,就會影響到整個程式。基於此,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.本節筆記

一,路由系統,url

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\d+)-(?p\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\d+)-(?p\d+).html',views.index)的形式的話,都傳到kwargs裡。因為傳遞形式是:nid=1,uid=2的格式

django 正規表示式

正規表示式 正規表示式 或 regexes 是通用的文字模式匹配的方法。django urlconfs 允許你 使用任意的正規表示式來做強有力的url對映,不過通常你實際上可能只需要使用很少的一 部分功能。這裡是一些基本的語法。1符號 匹配.dot 任意單一字元 d任意一位數字 a z a 到 z ...

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...