W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
對于更復(fù)雜的匹配需求,你能定義你自己的路徑轉(zhuǎn)換器。
轉(zhuǎn)換器是一個類,包含如下內(nèi)容:
regex
?類屬性。to_python(self, value)
? 方法,用來處理匹配的字符串轉(zhuǎn)換為傳遞到函數(shù)的類型。如果沒有轉(zhuǎn)換為給定的值,它應(yīng)該會引發(fā) ?ValueError
?。?ValueError
?說明沒有匹配成功,因此除非另一個 URL 模式匹配成功,否則會向用戶發(fā)送404響應(yīng)。to_url(self, value)
? 方法,它將處理 Python 類型轉(zhuǎn)換為字符串以用于 URL 中。如果不能轉(zhuǎn)換給定的值,它應(yīng)該引發(fā) ?ValueError
?。?ValueError
?被解釋為無匹配項,因此 ?reverse()
? 將引發(fā) ?NoReverseMatch
?,除非有其他 URL 模式匹配。例如:
class FourDigitYearConverter:
regex = '[0-9]{4}'
def to_python(self, value):
return int(value)
def to_url(self, value):
return '%04d' % value
在 ?URLconf
?中使用 ?register_converter()
? 來注冊自定義的轉(zhuǎn)換器類:
from django.urls import path, register_converter
from . import converters, views
register_converter(converters.FourDigitYearConverter, 'yyyy')
urlpatterns = [
path('articles/2003/', views.special_case_2003),
path('articles/<yyyy:year>/', views.year_archive),
...
]
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: