Django url.py path/re_path路徑函數
透過網址列本身當參數傳值到視圖view,將路徑中的值當作參數傳給視圖view
路徑函數有兩個path / re_path
re_path用於正規表達式
正規表達式的開始與結束 ^ ... $
re_path(‘^id/(?P<book_id>[a-zA-Z0–9]{4})/$’, views.show_book_id),
正则表达式中的[a-zA-Z0–9]{4}匹配4位数字+字母。?P<book_id>是正则表达式分组,book_id组名是函数参数。
适用http://127.0.0.1:8000/books/id/123d/、id/A13d/
对应的函数视图def show_book_id(request, book_id):
?P<book_id> 與 def show_book_id(request, book_id): 的book_id相對應 ###
re_path(‘^(?P<price>\d+\.\d+)/$’, views.show_book_price),
正则表达式中的\d+\.\d+匹配于小数。?P<price>是正则表达式分组,price组名是函数参数。
适用http://127.0.0.1:8000/books/32.36/
?P<price> 與 def show_book_price(request, price): 的price相對應 ###
路径转换器
路径中可以捕获路径中的数值,路径转换器可以将捕获的数值进行转换为有效参数,传递给函数视图。
path(‘hello1/<str:name>/’, views.hello1, name=’hello’),###捕獲網址列str當值傳給view
def hello1(request, name):
s = ‘<h3>hello1 {0}!</h3>’.format(name)
return HttpResponse(s)
path(‘<int:book_id>/’, views.show_book_id),###捕獲網址列int當值傳給view
def show_book_id(request, book_id):
s = ‘<h3>您选择的图书编号:{0}。</h3>’.format(book_id)
return HttpResponse(s)