python 4. path的定義及參數,re_path


path定義

path函數的定義為:path(route,view,name=None,kwargs=None)

可以查看官方文檔 → 官方文檔,下面是取自官方文檔關於path的參數

函數 path() 具有四個參數,兩個必須參數:route 和 view,兩個可選參數:kwargs 和 name。

path() 參數: route

route 是一個匹配 URL 的准則(類似正則表達式)。當 Django 響應一個請求時,它會從 urlpatterns 的第一項開始,按順序依次匹配列表中的項,直到找到匹配的項。
這些准則不會匹配 GET 和 POST 參數或域名。例如,URLconf 在處理請求 https://www.example.com/myapp/ 時,它會嘗試匹配 myapp/ 。處理請求 https://www.example.com/myapp/?page=3 時,也只會嘗試匹配 myapp/。

path() 參數: view

當 Django 找到了一個匹配的准則,就會調用這個特定的視圖函數,並傳入一個 HttpRequest 對象作為第一個參數,被“捕獲”的參數以關鍵字參數的形式傳入。

path() 參數: kwargs

任意個關鍵字參數可以作為一個字典傳遞給目標視圖函數。

path() 參數: name

為你的 URL 取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。這個有用的特性允許你只改一個文件就能全局地修改某個 URL 模式。

route幾種常用的類型

  • str:非空的字符串類型。默認的轉換器。但是不能包含斜杠。
  • int:匹配任意的零或者正數的整形。到視圖函數中就是一個int類型。
  • slug:由英文中的橫杠-,或者下划線_連接英文字符或者數字而成的字符串。
  • uuid:匹配uuid字符串。
  • path:匹配非空的英文字符串,可以包含斜杠。

re_path定義:

它和path是相同的,但是它的第一個參數傳遞的是一個正則表達式

#和path相同需要導入re_path
from django.urls import path, re_path
from . import views
urlpatterns = [
        path('canshu/2003/', views.special_case_2003),
        #使用r包裹正則表達式,它是一個原生字符串,可以避免python這一層面轉移(不是非要不可)
        re_path(r'canshu/(?P<year>[0-9]{4})/', views.year_archive),
    ]

Python停更,轉Java


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM