django 1.8 공식 문서 번역: 3-2-1 내장된 보기
3994 단어 django
몇 개의 Django의 내장 보기가 편집 보기에서 설명하고 문서의 다른 부분도 설명한다.
개발 환경의 파일 서버
static.serve(request, path, documentroot, showindexes=False)
로컬 개발 환경에서 프로젝트의 정적 파일을 제외하고는 일부 파일이 있을 수 있습니다. 편리하기 때문에 Django를 서버로 사용하기를 원합니다.서버 () 보기는 임의의 디렉터리 서버로 사용할 수 있습니다.(이 보기는 생산 환경에 사용할 수 없고 개발할 때만 보조적으로 사용해야 한다. 생산 환경에서 이 파일들을 서비스하기 위해 실제 전방 웹 서버를 사용해야 한다).
가장 흔히 볼 수 있는 예는 사용자가
MEDIA_ROOT
에 문서를 업로드하는 것이다.django.contrib.staticfiles
정적 파일에 사용되며 사용자가 업로드한 파일을 처리하지 않았지만, URLconf에 내용을 추가하여 Django를 MEDIA 로 만들 수 있습니다.ROOT 서버:from django.conf import settings
from django.views.static import serve
# ... the rest of your URLconf goes here ...
if settings.DEBUG:
urlpatterns += [
url(r'^media/(?P.*)$', serve, {
'document_root': settings.MEDIA_ROOT,
}),
]
주의, 여기 있는 코드 세션은
MEDIA_URL
의 값을 '/media/'
로 가정하십시오.이것은 serve()
보기를 호출하여 URLconf의 경로와 (필수) document_root
인자를 전달합니다.이 URL 모드를 정의하는 것이 서투르기 때문에, Django는 작은 URL 보조 함수
static()
를 제공합니다. 이것은 MEDIA_URL
와 같은 매개 변수를 접두사와 보기의 경로로 수신합니다. 예를 들어 'django.views.static.serve'
다른 함수 매개 변수는 투명하게 보기에 전달됩니다.잘못된 뷰
Django는 HTTP 오류를 처리하기 위한 기본 뷰를 기본으로 제공합니다.사용자 정의 보기로 덮어쓰려면 사용자 정의 오류 보기를 참고하십시오.
404 보기
defaults.pagenotfound(request, template_name='404.html')
한 보기에서 Http404를 일으키면 Django에서 404 오류를 처리하기 위한 특수한 보기를 불러옵니다.기본 보기는
django.views.defaults.page_not_found()
보기입니다. 이것은 매우 간단한 "Not Found"메시지나 렌더링 404.html
템플릿을 생성합니다. 루트 템플릿 디렉터리에 그것을 만들면.기본 404 뷰는 잘못된 URL인 템플릿에 변수를 전달합니다.
request_path
404 뷰에 대해 주의해야 할 3가지 사항:RequestContext
전달되고 템플릿 상하문 프로세서가 제공하는 변수(예를 들어 MEDIA_URL
에 접근할 수 있다.True
settings
모듈에 있음) 으로 설정되면 404 보기를 사용하지 않고 URLconf를 표시하고 디버깅 정보를 가지고 있습니다.500 보기
defaults.servererror(request, templatename='500.html')
이와 같이 보기 코드에서 실행 중 오류가 발생하면 Django는 특수한 상황에서 행동을 수행합니다.보기가 이상하면 Django는 기본적으로
django.views.defaults.server_error
보기를 호출합니다. 이것은 아주 간단한 "서버 Error"메시지나 렌더링 500.html
을 생성합니다. 루트 템플릿 디렉터리에 정의되어 있다면.기본 500 뷰는
500.html
템플릿에 변수를 전달하지 않으며 빈 뷰Context
를 사용하여 렌더링하여 오류가 다시 발생할 가능성을 줄입니다.DEBUG
가 True
(당신의 settings
모듈에 있음) 으로 설정되면 500보기를 호출하지 않고, 거슬러 올라가며 디버깅 정보를 표시합니다.403(HTTP Forbidden) 뷰
defaults.permissiondenied(request, templatename='403.html')
Django는 404 및 500 뷰와 마찬가지로 403 Forbidden 오류를 처리하는 뷰를 가지고 있습니다.만약 하나의 보기가 403 보기를 초래한다면, Django는 기본적으로 보기
django.views.defaults.permission_denied
를 호출할 것입니다.이 보기는 루트 템플릿 디렉토리에 있는
403.html
를 로드하고 렌더링합니다. 파일이 존재하지 않으면 RFC 2616(HTTP 1.1 Specification)에 따라 "403 Forbidden"텍스트를 반환합니다.django.views.defaults.permission_denied
통과PermissionDenied
이상 촉발.뷰 액세스를 거부하려면 다음과 같은 뷰 코드를 사용할 수 있습니다.from django.core.exceptions import PermissionDenied
def edit(request, pk):
if not request.user.is_staff:
raise PermissionDenied
# ...
400 보기
defaults.badrequest(request, templatename='400.html')
Django에서
SuspiciousOperation
가 발생하면 Django의 구성 요소 처리 (예를 들어 세션 데이터 재설정) 를 통과할 수 있습니다.특별한 처리가 없으면, Django는 현재 요청이 서버 error가 아닌'bad request '라고 생각할 것입니다.django.views.defaults.bad_request
및 서버error 보기는 클라이언트의 동작에서 오류가 발생했음을 표시하기 위해 400 상태 코드를 되돌려 주는 것을 제외하고는 매우 비슷합니다.bad_request
시도 역시 DEBUG
False
일 때만 사용한다.번역자: Django 문서 공동 번역 팀, 원문: Built-in Views.
본고는 CC BY-NC-SA 3.0 프로토콜로 발표되었으며 전재는 작가의 서명과 글의 출처를 보존해 주십시오.
Django 문서 협동 번역팀은 일손이 부족해서 관심 있는 친구가 우리에 가입할 수 있습니다. 완전 공익적입니다.교류군: 467338606.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.