自定義
url
轉換器五個步驟:
定義乙個類。
在類中定義乙個屬性 regex
,這個屬性是用來儲存
url
轉換器規則的正規表示式。
實現 to_python(self,value)
方法,將
url
中的值轉換一下,然後傳給檢視函式
的。實現 to_url(self,value)
方法,做
url
反轉的時候,將傳進來的引數轉換後拼
接成乙個正確的
url。
將定義好的轉換器,註冊到
django
中。例子:獲取列表分類(/article/list/python+django+flask)
1#在應用下新建converter.py檔案
2from django.urls import
converters,register_converter34
class
categoryconverter():
5 regex = r'
\w+|(\w+\+\w+)+'6
7def
to_python(self,value):8#
python+django+flask9#
['python','django','flask']
10 result = value.split("+"
)11return
result
1213
defto_url(self,value):14#
value:['python','django','flask']15#
python+django+flask
16if
isinstance(value,list):
17 reslut = '+'
.join(value)
18return
reslut
19else:20
raise runtimeerror('
轉換url的時候,分類引數必須為列表')
2122 register_converter(categoryconverter,'
cate
')
1#應用的urls.py
2from django.urls import
path,re_path
3from . import
views
45 urlpatterns =[
6 path(''
,views.article),7#
\w: 0-9 a-z a-z8#
re_path(r'list/(?p\w+|(\w+\ +\w+)+)/',views.article_list)
9 path('
list//
',views.article_list,name='
list'),
10 path('
detail//
',views.article_detail,name='
detail')
11 ]
1#應用的views.py
文章首頁')
78#9
defarticle_list(request,categories):
10 text = '
您填寫的分類是:%s
文章詳情
')
1#應用的__init__.py檔案
2from . import converters
1#專案的urls.py檔案
乙個匹配四個數字年份的 url 轉換器。示例**如下:
1#定義乙個類
2class
fourdigityearconverter:
3 regex = '
[0-9]'4
5def
to_python(self, value):
6return
int(value)78
defto_url(self, value):
9return
'%04d
' %value
1011
#註冊到django中
12from django.urls import
register_converter
13 register_converter(converters.fourdigityearconverter, '
yyyy')
14 urlpatterns =[
15 path('
articles/2003/
', views.special_case_2003),16#
使用註冊的轉換器
17 path('
articles//
', views.year_archive),
18...
19 ]
Django 自定義url轉換器
django包含內建的url轉換器,有int uuid等。有時候這些內建的url轉換器並不能滿足我們的需求,因此django給我們提供了乙個介面可以讓我們自己定義自己的url轉換器。自定義url轉換器按照以下五個步驟來走就可以了 定義乙個類,直接繼承自object就可以了。在類中定義乙個屬性rege...
flask 自定義url轉換器
可以指定url的規制,對url做一定的限制。首先我們提乙個需求,根據需求來寫 現在我們假設乙個url需要滿足 號碼的格式才能訪問我們的函式檢視,例如這樣的url 127.0.0.1 5000 user 號碼 首先匯入baseconverter from werkzeug.routing import...
django 自定義url轉換器
django內建的url轉換器,包括有int str uuid等等。但是有時候他們不能滿足我們的需求,因此就需要使用自定義url轉換器。自定義url轉換器的五步 1 定義乙個類,直接繼承自object就可以 2 在類中定義乙個屬性regex,這個屬性是用來限制url轉換器規則的正規表示式。3 實現t...