Django 진급-고급 보기와 URL 설정
7574 단어 Django
url(r'^reviews/(?P[0-9]{4})/(?P[0-9]{2})/(?P[0-9]{2})/$' ,
views.review_detail)
둘.보기 함수에 매개 변수 전달
urlpatterns = [
url(r'^reviews/(?P[0-9]{4})/$' ,
views.year_archive,
{'foo': 'bar'}
),
]
# ,
def year_archive(request, year="xxx",foo="yyy"):
...
셋.오류 페이지 사용자 정의
4
DEBUG = False # Debug
ALLOWED_HOSTS = ['*'] # allowrd_hosts
4
4
def page_not_found(request):
return render(request,'page_error.html')
def page_error(request):
return render(request,'page_error')
def page_forbidden(request):
return render(request,'page_forbidden.html')
def bad_request(request):
return render(request,'bad_request.html')
4
from .views import *
urlpatterns = [...]
handler404 = page_not_found
handler500 = page_error
handler403 = page_forbidden
handler400 = bad_request
넷.url 도입 설정 사용법
사용법 1: URL () 추가 URL 모드 도입
from django.conf.urls import include, url
from apps.main import views as main_views
from credit import views as credit_views
extra_patterns = [
url(r'^reports/(?P[0-9]+)/$' , credit_views.report),
url(r'^charge/$', credit_views.charge),
]
urlpatterns = [
url(r'^$', main_views.homepage), #
url(r'^help/', include('apps.help.urls')), # urls
url(r'^credit/', include(extra_patterns)), # urlpatterns
]
사용법2: 공통 경로 접두사 추출
urlpatterns = [
url(r'^(?P\w+)-(?P\w+)/history/$' ,
views.history),
url(r'^(?P\w+)-(?P\w+)/edit/$' ,
views.edit),
url(r'^(?P\w+)-(?P\w+)/discuss/$' ,
views.discuss),
url(r'^(?P\w+)-(?P\w+)/permissions/$' ,
views.permissions),
]
↓↓↓
urlpatterns = [
url(r'^(?P\w+)-(?P\w+)/' ,
include([
url(r'^history/$', views.history),
url(r'^edit/$', views.edit),
url(r'^discuss/$', views.discuss),
url(r'^permissions/$', views.permissions),
]) ),
]
오.구문 분석 URL
4
4
4
4
"{% url 'reviews-year-archive' 2012 %}">2012 Archive
"{% url 'reviews-year-archive' yearvar %}">{{
yearvar }} Archive
python 코드에서
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
def redirect_to_year(request):
...
year = 2012
...
return HttpResponseRedirect(reverse('reviews-year-archive', args=(year,)))
여섯.네임스페이스
방법 1:
# reviews.urls URL reviews , author-reviews
url(r'^reviews/', include('reviews.urls',namespace='author-reviews',app_name='reviews')),
방법 2:
from django.conf.urls import include, url
from . import views
reviews_patterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^(?P\d+)/$' , views.DetailView.as_view(), name='detail'),]
url(r'^reviews/', include((reviews_patterns, 'reviews', 'author-reviews'))),
네임스페이스 데이터를 포함하는 대상을 도입합니다.include () 를 사용하여 url () 실례를 도입하면, 그 대상의 URL은 전역 이름 공간에 추가됩니다.위 코드는 지정된 URL 모드를 지정된 응용 프로그램 및 인스턴스 네임스페이스로 가져옵니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.