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

Django路由Path方法的實現(xiàn)

 更新時間:2023年07月12日 11:53:47   作者:以山河作禮。  
本文主要介紹了Django路由Path方法的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

path()方法

path 函數(shù)來進(jìn)行路由的匹配,可通過以下方式進(jìn)行導(dǎo)入:

#新的2.x版本導(dǎo)入path,導(dǎo)入簡化
from django.urls import path
#原來的1.x版本url方式,conf子包
from django.conf.urls import url

但是之前的 url 模塊并沒有廢止,只是 Django 強(qiáng)烈建議我們使用新模塊 path 進(jìn)行路由的匹配。

path方法函數(shù)定義

path 函數(shù)在 Django中的的定義如下所示:

path(route, view, kwargs, name)

它可以接收 4 個參數(shù),其中前兩個是必填參數(shù)后兩個為可選參數(shù)。參數(shù)解析如下:

  • route:是一個匹配 URL 的準(zhǔn)則(類似正則表達(dá)式)。當(dāng) Django 響應(yīng)一個請求時,它會從 urlpatterns 的第一項開始,按順序依次匹配列表中的項,直到找到匹配的項,然后執(zhí)行該項映射的視圖函數(shù)或者 include 函數(shù)分發(fā)的下級路由,因此,url 路由的編寫在 Django中十分的重要!
  • view:指的是處理當(dāng)前 url 請求的視圖函數(shù)。當(dāng) Django 匹配到某個路由條目時,自動將封裝的 HttpRequest 對象作為第一個參數(shù),被“捕獲”的參數(shù)以關(guān)鍵字參數(shù)的形式,傳遞給該條目指定的視圖函數(shù)。
  • kwargs:指使用字典關(guān)鍵字傳參的形式給關(guān)聯(lián)的目標(biāo)視圖函數(shù)傳遞參數(shù)。
  • name:給 URL 起個別名,常用于 url 的反向解析,避免在模板中適應(yīng)硬編碼的方式使用嵌入 url,在后續(xù)章節(jié)會進(jìn)行詳細(xì)講解。

下面是一個使用path()方法的示例:

from django.urls import path
from . import views
urlpatterns = [
? ? path('articles/<int:year>/', views.article_year),
]

這個示例定義了一個路由,將請求的URL路徑中的年份參數(shù)傳遞給名為article_year的視圖函數(shù)。在視圖函數(shù)中,可以通過request對象的year屬性來獲取年份參數(shù)的值。

當(dāng)使用 path 方法關(guān)聯(lián)視圖函數(shù)時與 url 方法相比更為簡化,也更容易讓初學(xué)者理解。

path 方法引入了類型轉(zhuǎn)化器(converter type)的概念,以此省去了較為復(fù)雜的正則表達(dá)式匹配路由的方法。

實例說明如下:

#1.x url方法
url(r'^test/(?P<year>[0-9])/$', views.year_test),
#2.x path方法
path('test/<int:year>/', views.year_test),

int 支持整數(shù)類型的轉(zhuǎn)化,在上述的例子中, year_test 函數(shù)接收到的 year 參數(shù)就變成整數(shù)而不是字符串,從而避免在視圖中使用year=int(year)。

path 函數(shù)定義的<int:year>規(guī)則會捕獲到 URL 中的值,映射給視圖中的同名參數(shù) year,并根據(jù)轉(zhuǎn)換器將參數(shù)值轉(zhuǎn)換為指定的類型,這里對應(yīng) int 大于等于 0 的整數(shù)。

之所以使用轉(zhuǎn)化器,有以下兩個原因:

  • 第一是可以將捕獲到的字符值轉(zhuǎn)換為對應(yīng)的類型;
  • 第二是對 URL 中傳值的一種限制,避免視圖處理出錯;

path方法類型轉(zhuǎn)化器

Django 默認(rèn)支持 5 個類型轉(zhuǎn)換器,在大多數(shù)情況下,絕對可以滿足我們的正常業(yè)務(wù)需求,如果不能,Django 同樣提供了自定義轉(zhuǎn)換器。

下面介紹 Django 默認(rèn)支持的轉(zhuǎn)換器,如下所示:

  • str,匹配除了路徑分隔符(/)之外的非空字符串,這是默認(rèn)的形式;
  • int,匹配正整數(shù),包含0;
  • slug,匹配字母、數(shù)字以及橫杠、下劃線組成的字符串;
  • uuid,匹配格式化的 uuid,如 075194d3-6885-417e-a8a8-6c931e272f00;
  • path,匹配任何非空字符串,包含了路徑分隔符。

re_path正則表達(dá)式匹配

Django 2.x 之后也支持我們使用正則表達(dá)式來捕獲值,在這里需要使用 re_path()。我們使用帶命名的正則表達(dá)式分組,語法如下:

(?P<name>pattern) 

其中,尖括號里的name為分組名,pattern為正則表達(dá)式。re_path()同樣包含于django.urls模塊中,所以同樣使用如下方式進(jìn)行導(dǎo)入。示例如下:

from django.urls import path, re_path  #導(dǎo)入re_path
from . import views
urlpatterns = [
    re_path('test/(?P<year>[0-9]{4})/', views.year_test),
    re_path('test/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/', views.month_test)]

到此這篇關(guān)于Django路由Path方法的實現(xiàn)的文章就介紹到這了,更多相關(guān)Django路由Path內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python自動化UI工具發(fā)送QQ消息的實例

    python自動化UI工具發(fā)送QQ消息的實例

    今天小編就為大家分享一篇python自動化UI工具發(fā)送QQ消息的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python統(tǒng)計列表中的重復(fù)項出現(xiàn)的次數(shù)的方法

    Python統(tǒng)計列表中的重復(fù)項出現(xiàn)的次數(shù)的方法

    這篇文章主要介紹了Python統(tǒng)計列表中的重復(fù)項出現(xiàn)的次數(shù)的方法,需要的朋友可以參考下
    2014-08-08
  • Python實現(xiàn)找到同名文件并復(fù)制到其他文件夾中

    Python實現(xiàn)找到同名文件并復(fù)制到其他文件夾中

    這篇文章主要為大家介紹了如何基于Python語言,實現(xiàn)依據(jù)某一文件夾中大量文件的名稱復(fù)制另一文件夾中的同名文件,文中的示例代碼簡潔易懂,需要的可以參考一下
    2023-05-05
  • pandas的Series類型與基本操作詳解

    pandas的Series類型與基本操作詳解

    這篇文章主要介紹了pandas的Series類型與基本操作詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python循環(huán)控制詳解

    Python循環(huán)控制詳解

    本文介紹了Python編程語言中關(guān)于for循環(huán)和if條件控制的一些基本使用,包含了單層循環(huán)的退出機(jī)制和多層循環(huán)的退出機(jī)制,使得我們在滿足特定條件時,可以直接結(jié)束多層循環(huán),需要的朋友可以參考下
    2024-07-07
  • python實現(xiàn)數(shù)據(jù)可視化超詳細(xì)講解

    python實現(xiàn)數(shù)據(jù)可視化超詳細(xì)講解

    Python的數(shù)據(jù)可視化是將數(shù)據(jù)以圖形或圖表的形式呈現(xiàn),使復(fù)雜的信息更易于理解和分析,本文給大家詳細(xì)介紹了python數(shù)據(jù)可視化的實現(xiàn),文中通過圖文結(jié)合的方式介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • Python中break語句和continue語句的用法講解

    Python中break語句和continue語句的用法講解

    在Python中,break語句和continue語句一般用于循環(huán)語句中,這篇文章主要介紹了Python中break語句和continue語句的用法小結(jié),需要的朋友可以參考下
    2022-12-12
  • python中protobuf和json互相轉(zhuǎn)換應(yīng)用處理方法

    python中protobuf和json互相轉(zhuǎn)換應(yīng)用處理方法

    protobuf目前有proto2和proto3兩個版本,本文所介紹的是基于proto3,在Python 3.6.9環(huán)境下運(yùn)行,本文記錄一下python中protobuf和json的相互轉(zhuǎn)換的處理方法,感興趣的朋友跟隨小編一起看看吧
    2022-12-12
  • python turtle工具繪制四葉草的實例分享

    python turtle工具繪制四葉草的實例分享

    在本篇文章里小編給各位整理的是關(guān)于python turtle工具繪制四葉草的實例分享,有興趣的朋友們可以跟著學(xué)習(xí)下。
    2020-02-02
  • 基于python詳解PyScript到底是什么

    基于python詳解PyScript到底是什么

    這篇文章主要介紹了基于python詳解PyScript到底是什么?文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值需要的朋友可以參考一下下面文章內(nèi)容
    2022-06-06

最新評論

遂溪县| 中宁县| 嘉祥县| 留坝县| 阳西县| 二连浩特市| 舒兰市| 开原市| 丰城市| 泰顺县| 东海县| 宁阳县| 三门峡市| 广宗县| 隆尧县| 蒲城县| 集贤县| 彩票| 平乡县| 临漳县| 建水县| 彩票| 民丰县| 天柱县| 曲水县| 海兴县| 黄龙县| 马关县| 遂平县| 灵台县| 交口县| 临泽县| 高州市| 巴彦县| 拉萨市| 饶河县| 张家港市| 成武县| 射洪县| 科技| 晴隆县|