django 사용자 정의 url 변환기

3555 단어
django 에 내 장 된 url 컨버터 는 int, str, uid 등 을 포함한다.그러나 때때로 그들 은 우리 의 요 구 를 만족 시 키 지 못 하기 때문에 사용자 정의 url 변환 기 를 사용 해 야 한다.사용자 정의 url 변환기 의 5 단계: 1. 하나의 종 류 를 정의 하고 object 에서 직접 계승 하면 2. 클래스 에서 속성 regex 를 정의 할 수 있 습 니 다. 이 속성 은 url 변환기 규칙 을 제한 하 는 정규 표현 식 입 니 다.3 、 실현 topython (self, value) 방법, 이 방법 은 url 의 값 을 변환 한 다음 보기 함수 에 전달 합 니 다.4 、 실현 tourl (self, value) 방법 입 니 다. 이 방법 은 url 반전 을 할 때 들 어 오 는 매개 변 수 를 올 바른 url 로 연결 하 는 것 입 니 다.5. 정 의 된 컨버터 를 사용 하여 'django. urls. converters. registerconverter '방법 은 django 에 등록 합 니 다.
예 를 들 어 글 분 류 를 조회 할 때 url 연결 유형 은 127.0.0.1: 8000 / article / python + django + pandas /
app 루트 디 렉 터 리 에 converter. py 파일 만 들 기
from django.urls import register_converter


class CategoryConverter(object):
    regex = r'\w+|(\w+\+\w+)+'

    def to_python(self, value):
        #  url  'python+django+pandas'   :['python', 'django', 'pandas']      
        result = value.split('+')
        return result

    def to_url(self, value):
        if isinstance(value, list):
            #        ['python', 'django', 'pandas']   'python+django+pandas'  URL
            result = '+'.join(value)
            return result
        else:
            raise RuntimeError('  url   ,         ')

# register_converter(         ,       ( urls.py     ))
register_converter(CategoryConverter, 'cate')

app 루트 디 렉 터 리 에 있 는init__.py 에 추가:
from . import converters

urls. py 에서 사용 하면 됩 니 다. 예 를 들 어:
path('article/',views.article_classify_list,name='article_classify'),

좋은 웹페이지 즐겨찾기