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_path404 뷰에 대해 주의해야 할 3가지 사항:
  • Django가 URLconf의 모든 정규 표현식을 검사한 후에 일치하는 내용을 찾지 못하면 404 보기를 호출합니다.
  • 404 보기는 RequestContext 전달되고 템플릿 상하문 프로세서가 제공하는 변수(예를 들어 MEDIA_URL에 접근할 수 있다.
  • DEBUG가 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를 사용하여 렌더링하여 오류가 다시 발생할 가능성을 줄입니다.DEBUGTrue (당신의 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시도 역시 DEBUGFalse일 때만 사용한다.
    번역자: Django 문서 공동 번역 팀, 원문: Built-in Views.
    본고는 CC BY-NC-SA 3.0 프로토콜로 발표되었으며 전재는 작가의 서명과 글의 출처를 보존해 주십시오.
    Django 문서 협동 번역팀은 일손이 부족해서 관심 있는 친구가 우리에 가입할 수 있습니다. 완전 공익적입니다.교류군: 467338606.

    좋은 웹페이지 즐겨찾기