亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

django中路由匹配中正則提取參數(shù)機制詳解

 更新時間:2025年05月14日 11:12:43   作者:stzhuce  
這篇文章主要介紹了django中路由匹配中正則提取參數(shù)機制方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

django路由匹配示例

下面是我們的示例代碼:

# 路由
from django.urls import path, re_path

from . import views

urlpatterns = [
    path('articles/2003/', views.special_case_2003),
    
    # 2.0以前版本 是url,現(xiàn)在是re_path 主要是通過正則來匹配
    re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive),
]

# 視圖層
def month_archive(request,year,month):
    pass

路由參數(shù)傳遞剖析

django是如何把路由參數(shù)獲取并傳遞給視圖呢?

從字面上我們可以看出來來,【正則路】所以這里面它巧妙的利用了正則的分組特性,并通過參數(shù)解包特性來完成,下面我們演示下大致的流程

假設(shè):我們訪問了的path是: articles/2021/11/

1.利用正則分組匹配獲取分組參數(shù)

import re
path = "articles/2021/11/"
# 使用  正則去匹配路由
res = re.search(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$',path)

if not res:
    print("匹配失敗!")
else:
    # 提取path參數(shù),利用分組
    kwargs = res.groupdict()

利用分組我們就可以正常的把里面path參數(shù)獲取到:

{'year': '2021', 'month': '11'}

2.我們利用解包特性把對應(yīng)的參數(shù)傳遞給視圖

# 偽代碼,調(diào)用視圖,
# 這中情況可能會更友好,直接通過關(guān)鍵詞方式調(diào)用,不影響我們方法定義的時候參數(shù)位置
# 但是實際django利用的是位置參數(shù)傳遞
month_archive(request,**kwargs)

# 上面的就等價于 month_archive(request, year="2021", month="11")


# 下面是位置參數(shù)傳遞,注意這是在正則提取的結(jié)果上進一步操作
# 1. 提取分組結(jié)果
args = res.groups()  #('2021', '11')
# 2. 調(diào)用視圖,這樣就限制了其位置
month_archive(request,*args)

# 上面的代碼等價于  month_archive(request,"2011","11")

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用實現(xiàn)XlsxWriter創(chuàng)建Excel文件并編輯

    使用實現(xiàn)XlsxWriter創(chuàng)建Excel文件并編輯

    今天小編就為大家分享一篇使用實現(xiàn)XlsxWriter創(chuàng)建Excel文件并編輯,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Cpython3.9源碼解析python中的大小整數(shù)

    Cpython3.9源碼解析python中的大小整數(shù)

    這篇文章主要介紹了Cpython3.9源碼解析python中的大小整數(shù),在CPython中,小整數(shù)對象池是一種優(yōu)化機制,用于減少對常用小整數(shù)的內(nèi)存分配和銷毀開銷,需要的朋友可以參考下
    2023-04-04
  • Python中str.join()簡單用法示例

    Python中str.join()簡單用法示例

    這篇文章主要介紹了Python中str.join()簡單用法,結(jié)合實例形式分析了Python中str.join()用于連接生成新字符串的相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • Python填充任意顏色,不同算法時間差異分析說明

    Python填充任意顏色,不同算法時間差異分析說明

    這篇文章主要介紹了Python填充任意顏色,不同算法時間差異分析說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python強制子類重寫父類的兩種方法實現(xiàn)

    Python強制子類重寫父類的兩種方法實現(xiàn)

    在Python中,有時候我們希望某個類能夠被子類繼承并重寫其中的某些方法,本文主要介紹了Python強制子類重寫父類的兩種方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • python排列組合庫itertools的具體使用

    python排列組合庫itertools的具體使用

    排列組合是數(shù)學中必不可少的一部分, Python 提供了itertools庫,該庫具有計算排列和組合的內(nèi)置函數(shù),本文主要介紹了python排列組合庫itertools的具體使用,具有一定的參考價值,感興趣的可以了解下
    2024-01-01
  • python設(shè)置環(huán)境變量的作用和實例

    python設(shè)置環(huán)境變量的作用和實例

    在本篇文章里小編給各位整理了關(guān)于python設(shè)置環(huán)境變量的作用和實例內(nèi)容知識點,需要的朋友們學習參考下。
    2019-07-07
  • 詳解python 支持向量機(SVM)算法

    詳解python 支持向量機(SVM)算法

    這篇文章主要介紹了python SVM算法的相關(guān)資料,幫助大家更好的利用python進行數(shù)據(jù)分析,感興趣的朋友可以了解下
    2020-09-09
  • Python如何合并多個字典或映射

    Python如何合并多個字典或映射

    這篇文章主要介紹了Python如何合并多個字典或映射,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • 打包python 加icon 去掉cmd黑窗口方法

    打包python 加icon 去掉cmd黑窗口方法

    今天小編就為大家分享一篇打包python 加icon 去掉cmd黑窗口方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評論