最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文章

  • 在 Python 中解析 ISO 8601 日期的詳細過程

    在 Python 中解析 ISO 8601 日期的詳細過程

    這篇文章主要介紹了在 Python 中解析 ISO 8601 日期,我們將討論典型的 ISO 8601 日期的結(jié)構(gòu),并向您展示如何將典型的 DateTime 對象解析為可以在所有地方使用的標準化 DateTime,需要的朋友可以參考下
    2023-08-08
  • Pandas繪圖函數(shù)超詳細講解

    Pandas繪圖函數(shù)超詳細講解

    matplotlib要組裝一張圖表,需要的各個基礎(chǔ)組件對象。相對工作量較大,但在pandas中我們有行標簽和列標簽以及分組信息。原本制作一張圖表需要一大堆matplotlib代碼。在pandas中只需要一兩條代碼就可以了,今天記錄一下,pandas中常見的幾個繪制圖表的方法
    2022-12-12
  • Python判斷字符串是否為合法標示符操作

    Python判斷字符串是否為合法標示符操作

    這篇文章主要介紹了Python判斷字符串是否為合法標示符操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Flask中Tracking ID請求跟蹤的設(shè)計實現(xiàn)

    Flask中Tracking ID請求跟蹤的設(shè)計實現(xiàn)

    本文詳細介紹如何在 Flask 應(yīng)用中實現(xiàn)請求跟蹤 ID功能,包括中間件設(shè)計、日志記錄、響應(yīng)格式化等完整方案,幫助開發(fā)者實現(xiàn)請求鏈路追蹤,感興趣的可以了解一下
    2026-02-02
  • python3 實現(xiàn)一行輸入,空格隔開的示例

    python3 實現(xiàn)一行輸入,空格隔開的示例

    今天小編就為大家分享一篇python3 實現(xiàn)一行輸入,空格隔開的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 使用python制作進度條的方法小結(jié)

    使用python制作進度條的方法小結(jié)

    偶然間刷到一個視頻,說到:當程序正在運算時,會有一個較長時間的空白期,誰也不知道程序運行的進度如何,不如給他加個進度條,于是我今個就搜尋一下,Python版的進度條都可以怎么寫,感興趣的小伙伴跟著小編一起來看看吧
    2024-04-04
  • pycharm配置Qt?Designer工具的圖文教程

    pycharm配置Qt?Designer工具的圖文教程

    本文主要介紹了pycharm配置Qt?Designer工具的圖文教程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 簡單解決Python文件中文編碼問題

    簡單解決Python文件中文編碼問題

    這篇文章主要介紹了簡單解決Python文件中文編碼問題的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • 對python中arange()和linspace()的區(qū)別說明

    對python中arange()和linspace()的區(qū)別說明

    這篇文章主要介紹了對python中arange()和linspace()的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python如何保護代碼和數(shù)據(jù),常見的安全漏洞及應(yīng)對措施有哪些?

    Python如何保護代碼和數(shù)據(jù),常見的安全漏洞及應(yīng)對措施有哪些?

    本文介紹了Python安全編程的重要性,并分享了常見的安全漏洞及應(yīng)對措施、安全編程最佳實踐、安全庫的使用、安全配置等內(nèi)容,同時,還對比了Python和Rust的安全特性,并推薦了一些實踐項目,最后提出了學(xué)習(xí)方法和技巧,鼓勵大家不斷提高安全意識
    2026-05-05

最新評論

屏东县| 长葛市| 安图县| 诸暨市| 香河县| 旬阳县| 凭祥市| 封丘县| 阜宁县| 景德镇市| 喜德县| 陇南市| 阳原县| 石狮市| 清丰县| 林口县| 抚松县| 马边| 乐昌市| 乐业县| 武汉市| 阿鲁科尔沁旗| 邢台县| 大理市| 平阳县| 家居| 北碚区| 南安市| 清水县| 霍州市| 漳平市| 托克逊县| 若羌县| 曲靖市| 宜阳县| 砚山县| 东丰县| 南康市| 龙南县| 调兵山市| 龙江县|