1. 程式人生 > >Django學習總結-之-URLS反向解析

Django學習總結-之-URLS反向解析

 URL   與 URI
  URL : 統一資源定位符  相當於絕對路徑
  URI : 統一資源標誌符  相當於相對路徑
- 多個App下URL 的配置方法
  工程目錄下的配置
  url(r'^App/',views.hello)
  這裡需要導包,用alt+enter鍵導包
  App專案下
  url(r'^getinfo/',views.getinfo)
  這裡也需要導包,用alt+enter鍵導包
  以上如果不加'/'  url在做正則匹配的時候,就會出現匹配出錯的情況,拿到假的頁面
- get請求帶參   URl帶參傳遞
  url('?P<引數>正則匹配'/,views.函式名稱)    繫結引數

        比如通過百度搜美女   http://www.baidu.com/?wd="美女"
        需要在url後面跟上   "?請求引數"
        帶參傳遞   
        關鍵字引數寫法
        (?P<year>\d+)
        url(r'^hi/(?P<year>\d+)/(?P<month>\d+)/(?                    P<day>\d+)/',views.gethi)

- URL 反向解析:
  1, 什麼是 url 反向解析
  動態獲取url的一種方式.    比如:  動態獲取別的電影網站地址,如果對方改變了網址,我們也需要修改,但是如果使用了反向解析,動態獲取的情況下  不管對方如何變化,我們都能拿到
   2, 反向解析配置:  
    在App目錄urls下配置 加上 name屬性   name ='xxx'
     在工程目錄下的urls裡面,再給配置一個namespace="名字自定義"  配置時需要注意,namespace是在include裡面
    url(r'^Two/', include('Two.urls',namespace="fan"))
  3, 跳轉方式:
  - 如果需要帶參跳轉,如果引數是位置引數,使用args引數
  - 如果引數是關鍵字引數,使用kwargs 以字典的形式傳送引數
    超連結跳轉,: <a href =  ' {% url ' namespace: name ' %}'></a>
    在檢視函式views中跳轉,:     
        1,  使用HttpResponseRedirect('路徑地址')--->固定獲取(地址值固定不變)
        2,  使用HttpResponseRedirect( reverse( 'namespace: name' ) )方法         動態獲取(反向解析)