>  기사  >  백엔드 개발  >  Django를 사용하여 맞춤형 404, 500페이지 구현 방법

Django를 사용하여 맞춤형 404, 500페이지 구현 방법

高洛峰
高洛峰원래의
2017-03-28 09:32:292408검색

이 글에서는 Custom 404, 500 페이지를 구현하기 위한 Django의 세부 사항을 주로 소개합니다. 방법은 매우 간단하고 실용적입니다. 필요한 친구들이 참고할 수 있습니다

1. 프로젝트 만들기

django-admin.py startproject HelloWorld

2. 관리에 HelloWorld 프로젝트를 입력합니다. py 동일한 수준의 디렉터리에 템플릿 디렉터리를 만들고, 템플릿 디렉터리에 404.html과 500.html이라는 두 개의 파일을 만듭니다.

3. settings.py 수정

( 1.) 디버그 수정이 False인 경우, (2.) ALLOWED_HOSTS는 지정된 도메인 이름 또는 IP를 추가하고, (3.) 템플릿 경로 'DIRS'를 지정합니다: [os.path.join(BASE_DIR,'templates')],

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
ALLOWED_HOSTS = ['localhost','www.example.com', '127.0.0.1']
TEMPLATES = [
 {
  'BACKEND': 'django.template.backends.django.DjangoTemplates',
  'DIRS': [os.path.join(BASE_DIR, 'templates')],
  'APP_DIRS': True,
  'OPTIONS': {
   'context_processors': [
    'django.template.context_processors.debug',
    'django.template.context_processors.request',
    'django.contrib.auth.context_processors.auth',
    'django.contrib.messages.context_processors.messages',
   ],
  },
 },
]

4. 새로운 A views.py

from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def hello(request):
 return HttpResponse('Hello World!')
@csrf_exempt
def page_not_found(request):
 return render_to_response('404.html')
@csrf_exempt
def page_error(request):
 return render_to_response('500.html')

5. urls.py를 수정합니다. 코드는 다음과 같습니다

from django.conf.urls import url
from django.contrib import admin
import HelloWorld.views as view
urlpatterns = [
 url(r'^admin/', admin.site.urls),
 url(r'^test$', view.hello),
]
handler404 = view.page_not_found
handler500 = view.page_error

다시 컴파일하고 uwsgi를 다시 시작하고 localhost/HelloWorld/test를 입력합니다. , 'Hello World!' 표시, 다른 주소 입력 404.html 내용이 표시되며, 오류가 발생하면 500.html 내용이 표시됩니다.

위 내용은 Django를 사용하여 맞춤형 404, 500페이지 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.