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

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

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

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 主要是通過(guò)正則來(lái)匹配
    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ù)獲取并傳遞給視圖呢?

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

假設(shè):我們?cè)L問(wèn)了的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.我們利用解包特性把對(duì)應(yīng)的參數(shù)傳遞給視圖

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

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


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

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

總結(jié)

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

相關(guān)文章

  • 在 Python 中解析 ISO 8601 日期的詳細(xì)過(guò)程

    在 Python 中解析 ISO 8601 日期的詳細(xì)過(guò)程

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

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

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

    Python判斷字符串是否為合法標(biāo)示符操作

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

    Flask中Tracking ID請(qǐng)求跟蹤的設(shè)計(jì)實(shí)現(xiàn)

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

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

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

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

    偶然間刷到一個(gè)視頻,說(shuō)到:當(dāng)程序正在運(yùn)算時(shí),會(huì)有一個(gè)較長(zhǎng)時(shí)間的空白期,誰(shuí)也不知道程序運(yùn)行的進(jìn)度如何,不如給他加個(gè)進(jìn)度條,于是我今個(gè)就搜尋一下,Python版的進(jìn)度條都可以怎么寫(xiě),感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-04-04
  • pycharm配置Qt?Designer工具的圖文教程

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

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

    簡(jiǎn)單解決Python文件中文編碼問(wèn)題

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

    對(duì)python中arange()和linspace()的區(qū)別說(shuō)明

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

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

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

最新評(píng)論

宿松县| 岐山县| 五莲县| 乐昌市| 达州市| 兴义市| 石河子市| 南昌县| 新密市| 桃源县| 三台县| 泸州市| 湘阴县| 如皋市| 库伦旗| 深州市| 易门县| 宁南县| 依兰县| 贵南县| 万州区| 利辛县| 白山市| 长顺县| 武冈市| 安宁市| 抚松县| 那曲县| 邹平县| 阜康市| 芜湖市| 凤阳县| 惠水县| 朔州市| 永修县| 安多县| 台南县| 十堰市| 富源县| 宜兰市| 凉山|