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

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

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

path()方法

path 函數(shù)來進行路由的匹配,可通過以下方式進行導(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 強烈建議我們使用新模塊 path 進行路由的匹配。

path方法函數(shù)定義

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

path(route, view, kwargs, name)

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

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

下面是一個使用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ù)的值。

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

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

實例說明如下:

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

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

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

re_path正則表達式匹配

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

(?P<name>pattern) 

其中,尖括號里的name為分組名,pattern為正則表達式。re_path()同樣包含于django.urls模塊中,所以同樣使用如下方式進行導(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命令 -u參數(shù)用法解析

    python命令 -u參數(shù)用法解析

    這篇文章主要介紹了python命令 -u參數(shù)用法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2019-10-10
  • Python入門教程(十九)python的函數(shù)詳解

    Python入門教程(十九)python的函數(shù)詳解

    這篇文章主要介紹了Python入門教程(十九)python的函數(shù),函數(shù)是組織好的,可重復(fù)使用的,用來實現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段,需要的朋友可以參考下
    2023-04-04
  • 利用python實現(xiàn)簡單的情感分析實例教程

    利用python實現(xiàn)簡單的情感分析實例教程

    商品評論挖掘、電影推薦、股市預(yù)測……情感分析大有用武之地,下面這篇文章主要給大家介紹了關(guān)于利用python實現(xiàn)簡單的情感分析的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • Python+Pygame實現(xiàn)趣味足球游戲

    Python+Pygame實現(xiàn)趣味足球游戲

    這篇文章主要為大家分享了一個基于Python和Pygame實現(xiàn)的一個趣味足球游戲,文中的示例代碼講解詳細,對我們學(xué)習Python有一定幫助,需要的可以參考一下
    2022-05-05
  • Django app配置多個數(shù)據(jù)庫代碼實例

    Django app配置多個數(shù)據(jù)庫代碼實例

    這篇文章主要介紹了Django app配置多個數(shù)據(jù)庫代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2019-12-12
  • Python中sorted()函數(shù)的強大排序技術(shù)實例探索

    Python中sorted()函數(shù)的強大排序技術(shù)實例探索

    排序在編程中是一個基本且重要的操作,而Python的sorted()函數(shù)則為我們提供了強大的排序能力,在本篇文章中,我們將深入研究不同排序算法、sorted()?函數(shù)的靈活性,以及各種排序場景下的最佳實踐
    2024-01-01
  • 基于asyncio 異步協(xié)程框架實現(xiàn)收集B站直播彈幕

    基于asyncio 異步協(xié)程框架實現(xiàn)收集B站直播彈幕

    本文給大家分享的是基于asyncio 異步協(xié)程框架實現(xiàn)收集B站直播彈幕收集系統(tǒng)的簡單設(shè)計,并附上源碼,有需要的小伙伴可以參考下
    2016-09-09
  • Python使用Beautiful Soup包編寫爬蟲時的一些關(guān)鍵點

    Python使用Beautiful Soup包編寫爬蟲時的一些關(guān)鍵點

    這篇文章主要介紹了Python使用Beautiful Soup包編寫爬蟲時的一些關(guān)鍵點,文中講到了parent屬性的使用以及soup的編碼問題,需要的朋友可以參考下
    2016-01-01
  • tensorflow 大于某個值為1,小于為0的實例

    tensorflow 大于某個值為1,小于為0的實例

    這篇文章主要介紹了tensorflow 大于某個值為1,小于為0的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 使用Python實現(xiàn)從麥克風獲取音頻并識別

    使用Python實現(xiàn)從麥克風獲取音頻并識別

    這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)從麥克風獲取音頻并識別功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習一下
    2025-02-02

最新評論