path( )作用:解析URL地址
path( ) 標准語法: (<>為必須的參數,[]為可選參數)
path(<route>, <view>, [name=None,**kwargs])
下面就具體的解釋:
route 表示路徑,從端口以后的URL地址,到/結束 即 https://i-beta.cnblogs.com/之后的路徑
從 urlpattern 的第一項開始,按順序依次匹配列表中的項,直到找到匹配的項。
view 表示route匹配成功后,需要調用的視圖,view 必須是一個函數或者是引用其他的URLconfs(urls.py)即路由模塊
如:
urlpatterns = [
path('polls/',include('path.urls')),
path('admin/',admin.site.urls),
]
name 表示的是route匹配到的URL的一個別名
**kwargs 表示一個字典,該參數沒有具體命名,只是字典形式,而且該參數只能在視圖函數中讀取和使用。
見如下代碼:
# path( <route>, <view>, **kwargs, name)
#---------------------------------------------------------------
re_path(‘dict/(?P<year>[0-9]{4}).html’,views.myyear_dict, {'month':'05'},name='myyear_dict')
#其中的字典參數傳遞給視圖函數myyear_dict
def myyear_dict(request, year, month): #變量year來自URL
return render(request, 'myyear_dict.html',{'month':month})
#視圖函數myyear_dict獲取到了變量year和month,並將參數month的值傳遞到HTML模板(myyear_dict.html)並生成HTML網頁返回給用戶
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>TItle</title>
</head>
<body>
<a href="{% url 'myyear_dict' 2018 %}">2018 {{month}} Archive</a> #使用視圖函數傳過來的month值
</body>
</html>
官方文檔的解釋如下:
函數 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 模式。