django包含內建的url轉換器,有int、uuid等。有時候這些內建的url轉換器並不能滿足我們的需求,因此django給我們提供了乙個介面可以讓我們自己定義自己的url轉換器。
自定義url轉換器按照以下五個步驟來走就可以了:
定義乙個類,直接繼承自object就可以了。
在類中定義乙個屬性regex,這個屬性是用來限制url轉換器規則的正規表示式。
實現to_python(self,value)方法,這個方法是將url中的值轉換一下,然後傳給檢視函式的。
實現to_url(self,value)方法,這個方法是在做url反轉的時候,將傳進來的引數轉換後拼接成乙個正確的url。
將定義好的轉換器,使用django.urls.converters.register_converter
方法註冊到django中。
把這個轉換器命名為 converters.py 並在 _init_.py 中匯入,這樣才能執行這段**。
示例**如下:
from django.urls import register_converter
class
categoryconverter
(object):
regex = r'\w+|(\w+\+\w+)+'
defto_python
(self,value)
:# python+django+flask
# ['python','django','flask']
result = value.split(
"+")
return result
defto_url
(self,value)
:# value:['python','django','flask']
# python+django+flask
ifisinstance
(value,
list):
result =
"+".join(value)
return result
else
:raise runtimeerror(
"轉換url的時候,分類引數必須為列表!"
)register_converter(categoryconverter,
'cate'
)
django 自定義url轉換器
django內建的url轉換器,包括有int str uuid等等。但是有時候他們不能滿足我們的需求,因此就需要使用自定義url轉換器。自定義url轉換器的五步 1 定義乙個類,直接繼承自object就可以 2 在類中定義乙個屬性regex,這個屬性是用來限制url轉換器規則的正規表示式。3 實現t...
django 自定義url轉換器
django內建的url轉換器,包括有int str uuid等等。但是有時候他們不能滿足我們的需求,因此就需要使用自定義url轉換器。自定義url轉換器的五步 1 定義乙個類,直接繼承自object就可以 2 在類中定義乙個屬性regex,這個屬性是用來限制url轉換器規則的正規表示式。3 實現t...
django開發系列 自定義URL轉換器
實現乙個獲取文章列表的demo,使用者可以根據 articles 文章分類 的方式來獲取文章。其中文章分類採用的是分類1 分類2 分類3.的方式拼接的,並且如果只有乙個分類,那就不需要加號。示例如下 articles python articles python django articles py...