Django的路由轉換器的使用

2021-10-07 21:00:59 字數 1547 閱讀 4197

# 專案結構

mycodes # 倉庫

|-- my_project

|-- myproject

| |-- urls.py # 總路由

| |-- users

| | |-- urls.py # 子路由

|-- utils # 工具包,路由轉換器就放在這裡

| |-- converters.py # 路由轉換器

|-- manage.py

一般會把路由轉換器放在乙個叫做命名為utils的工具包裡.

首先編寫路由轉換器倉庫/專案目錄/專案主目錄/utils/converters.py中路由轉換器的內容:

class usernameconverter:

"""自定義路由轉換器"""

# 定義正規表示式

regex = '[a-za-z0-9_-]'

def to_python(self, value):

# 將匹配結果傳遞到檢視內部時使用

# 返回str還是int主要看需求,純數字的可以返回int

return str(value)

def to_url(self, value):

# 將匹配結果用於反向解析傳值時使用

return str(value)

class mobileconverter:

regex = '1[3-9]\d'

def to_python(self, value):

return int(value)

def to_url(self, value):

return str(value)

然後在主路由中註冊路由轉換器

主路由的位置在倉庫/myproject/myproject/urls.py

# 註冊路由轉換器

from django.urls import register_converter

from meiduo_mall.utils.converters import usernameconverter

from meiduo_mall.utils.converters import mobileconverter

register_converter(usernameconverter,'username')

register_converter(mobileconverter,'mobile')

在子路由中使用路由轉換器

urlpatterns = [

# 檢查重複使用者介面 20200702

path(r'usernames//count/',views.usernamecountview.as_view()),

# 檢查重複的手機號藉口

path(r'mobiles//count/',views.mobilecountview.as_view()),

]

Django的路由轉換器的使用

專案結構 mycodes 倉庫 my project myproject urls.py 總路由 users urls.py 子路由 utils 工具包,路由轉換器就放在這裡 converters.py 路由轉換器 manage.py一般會把路由轉換器放在乙個叫做命名為utils的工具包裡.首先編寫...

flask中路由轉換器

1.flask自帶的轉換器 def goods detail goods id return goods detail s goods id def hello itcast id return hello itcast d id 轉換器 int接受整數 float同int,但是接受浮點數 path...

ConvertUtils轉換器的使用

如果2個bean的屬性的型別不一樣,例如2個bean中birthday型別分別為string和date,需要自己註冊個轉換器,轉完後再copy convertutils也提供了乙個轉換器 convertutils.register new converter dateformat df new da...