Django——有名分組 無名分組,反向解析,名稱空間

1、有名分組 無名分組

#1 無名分組的使用
    ### 無名分組,把分組分出來的值,看成位置參數傳遞給視圖函數
    url(r'^login/([0-9]{4})/([0-9]{2})', views.login),
#2 有名分組的使用
    ### 有名分組,把分組出來的值,看成關鍵字參數傳遞給視圖函數
    url(r'^login/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})', views.login),
    
#3  有什麼做用
    能夠從url地址中解析出參數,傳遞給視圖函數使用
    
#4  案例
    # 這種地址,把人名和id分出來
    # 有名分組
    # ilovejaney/p/13748739.html
    url(r'^(?P<name>.*?)/p/(?P<id>\d+).html', views.article),
    # 無名分組
    url(r'^(.*?)/p/(\d+).html', views.article),
 
# 5 僞靜態
    -原來是動態頁面/login   作成/login.html  假裝成靜態頁面,便於seo優化
    -seo優化:
    -https://www.cnblogs.com/liuqingzheng/articles/9509792.html

 

2、反向解析

1 經過路由的別名,解析出路由的地址
2 用在視圖函數中:
    url=reverse('home')  # home就是路由的別名
    print(url)
    
3 模板文件中使用
    {% url 'meinv' %}
    
4 有什麼做用
    -動態根據路由別名得到路徑,一旦路徑改變,不須要改其餘代碼
    

 

3、名稱空間

1 路由作反向解析時,有同名路由,出現問題
2 在作路由分發時,給每一個app的路徑設置一個名稱空間

3 使用步驟
    1 在總路由中設置
        url(r'^app01',include('app01.urls','名稱空間的名字') ),

    -2 用在視圖函數中:
        url=reverse('名稱空間的名字:home')  # home就是路由的別名
        print(url)
    -3 模板文件中使用
        {% url '名稱空間的名字:meinv' %}
相關文章
相關標籤/搜索