自製URL轉換器

2022-03-25 09:28:30 字數 3345 閱讀 6769

自定義

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...