Django URLconf

5621 단어 django
Django는 깨끗하고 우아한 URL 프로젝트를 제공합니다. URL 프로필은 표준python 파일로 동적 설정을 지원합니다.본질은 URL 모드와 호출된 뷰 함수 사이의 매핑 테이블이며 가장 간단한 구성 파일은 다음과 같습니다.
from django.conf.urls.defaults import *

from sailing.manager.views import search



urlaptterns = patterns('',

    url(r'^search$',search),

)

위에서 사용한 것은 함수 대상을 전달하는 방식(python에서 함수는 일급 대상이므로 다른 변수를 전달하는 것처럼 전달할 수 있다. 함수 대상을 전달하는 방식, 함수 대상을 포장하는 방식)을 사용하고 다음은 문자열을 전달하는 방식을 사용한다.
from django.conf.urls.defaults import *



urlaptterns = patterns('sailing.manager.views',

    url(r'^search/$','search'),

)

문자열을 사용하면 import 관련 모듈을 사용하지 않고 일반 접두사를 사용할 수 있습니다. (patterns 함수의 첫 번째 인자는 하나의 문자열로 보기 함수의 일반 접두사를 나타냅니다.)접두사가 다를 때 여러 개의 패널 () 대상을 추가한 다음 덧붙이면 됩니다. 예를 들어:
from django.conf.urls.defaults import *



urlaptterns = patterns('sailing.manager.views',

    url(r'^search/$','search'),

)

urlaptterns += patterns('',

    url(r'^admin/', include(admin.site.urls)),

)

대부분의 URL 모드는 ^로 시작하여 $로 끝납니다. URL 모드 끝에 슬래시가 있으면 겉으로는 꼬리에 슬래시가 없는 URL과 일치하지 않지만, 기본적으로 꼬리에 슬래시가 없는 URL은 어떤 모드와 일치하지 않으면 꼬리에 슬래시가 포함된 모드로 다시 지정됩니다.따라서 urlpatterns에서 URL을 설정할 때 가능한 한 끝부분에 빗장을 달아야 한다.
또한urls 때문에.py는 표준 python 파일이기 때문에 DEBUG 모드에서만 유효한 모드와 같이 동적 설정urlpatterns를 지원합니다.
from django.conf import settings

from django.conf.urls.defaults import *



if settings.DEUG:

    urlpatterns = patterns('',

        (r'^search/','search'),

    )

URLconf의 명명되지 않은 정규 표현식 그룹에서 URL 부분의 데이터를 포획하려면 작은 괄호를 붙여서 Django는 포획된 텍스트를 위치 매개 변수로 보기 함수에 전달합니다.또한 명명된 정규 표현식 그룹을 사용하여 URL을 포획할 수도 있고, 작은 괄호를 붙여서 키워드 매개 변수로 보기에 전달할 수도 있다.명명된 정규 표현식 그룹의 문법은 다음과 같습니다: (? P pattern). 읽기 쉽고,view 함수에서 매개 변수를 다시 정렬할 수 있으며, 간결하지 않은 것이 단점입니다.같은 URLconf에서 명명 그룹과 비명명 그룹은 동시에 존재할 수 없습니다. 그렇지 않으면 오류가 발생하지 않지만 예상치 못한 문제가 발생할 수 있으므로 가능한 한 피하십시오.
URL 모드에서 매개 변수를 전달하는 것을 제외하고patterns () 함수에 있는 모든 URLconf는 세 번째 요소가 있습니다. 이것은 dict 형식으로 키워드 매개 변수와 전달하는 값을 나타냅니다. (이 값은 문자열일 수도 있고 어떤 유형의 대상일 수도 있습니다.)보기 함수는 매개 변수를 얻었을 뿐, 이 매개 변수가 포착되었는지, 추가로 제공되었는지는 상관하지 않는다.그러나 충돌이 발생하면 추가 URLconf 매개변수가 스냅 값보다 우선합니다. 예를 들어,
urlpatterns = patterns('',

    (r'^mydata/(?P<id>\d+)/$', views.my_view, {'id':3}),

)

요청한 URL의 id 값이 무엇이든지 id = 3만 보기 함수에 전달됩니다.모든 포획된 매개 변수는 보기 함수에 문자열로 전송되며, 정규 표현식의 형식을 막론하고 보기 함수에서 형식 변환을 해야 할 수도 있습니다. (그러나 이상을 포착할 필요가 없을 수도 있습니다. URLconf의 정규 표현식은 이 형식의 문자열만 이 보기에 전송될 수 있기 때문입니다.)
또 하나의 세부 사항은 보기 함수 중의 매개 변수가 기본값을 가지고 있기 때문에 동적 기능을 할 수 있다.상응하여python 가변 매개 변수의 특성을 사용할 수 있다(매개 변수 앞에 * 번호가 있고 전달된 매개 변수는tuple로 저장되며 매개 변수 앞에 두 개의 * 번호가 있으며 전달된 키워드 매개 변수는 사전으로 저장됨을 나타낸다)
URLconf에서는 일치하는 함수 대상을 포장할 수 있는 것 이외에include를 통해 다른 URLconf를 포함할 수 있습니다.Django가 include()를 만날 때마다 URL에서 일치하는 모드의 텍스트를 제거하고 나머지 부분은 include()에서 지정한 URLconf로 보내서 처리합니다.URLconf의 세 번째 매개 변수 (추가 보기 함수 매개 변수) 는include () 에서 지정한 URLconf에 전달될 수 있습니다.
 
 
 

좋은 웹페이지 즐겨찾기