117. 상태 코드 오류 처리
일부 사이트 개발 에 서 는 오 류 를 포착 한 다음 에 이 오 류 를 아름 다운 인터페이스 로 되 돌려 주거 나 잘못된 요청 을 로그 로 저장 해 야 합 니 다.
일반적인 오류 코드:
1.404: 서버 에 지정 한 url 이 없습니다.
2.403: 관련 데이터 에 접근 할 수 있 는 권한 이 없습니다.
3.405: 요청 한 method 오류 입 니 다.
4.400: badrequest, 요청 한 인자 오류 입 니 다.
5.500: 서버 내부 오류, 일반적으로 코드 버그 가 발생 합 니 다.
6.502: 보통 배치 할 때 많이 보 는데 보통 nginx 가 작 동 한 다음 에 uwsgi 에 문제 가 있 습 니 다.
사용자 정의 오류 템 플 릿:
예 를 들 어 404, 500 오류 가 발생 했 을 때 자신 이 정의 한 템 플 릿 을 되 돌려 주 려 면 templates 폴 더 에서 해당 하 는 코드 html 템 플 릿 파일 을 직접 만 들 수 있 습 니 다.해당 오류 가 발생 하면 지정 한 템 플 릿 을 되 돌려 줍 니 다.
주의해 야 할 것 은 자신 이 정의 한 상태 코드 템 플 릿 이 작 동 하려 면 settings. py 파일 에 설정 해 야 합 니 다. DEBUG = False (DEBUG 를 False 로 설정 해 야 합 니 다. DEBUG 를 True 로 설정 하면 정 의 된 잘못된 상태 코드 파일 을 렌 더 링 하지 않 고 오류 만 되 돌려 줍 니 다. 사용자 에 게 어디 가 잘못 되 었 는 지 알려 줍 니 다.) 와 ALLOWEDHOSTS = ['127.0.0.1'] (DEBUG 를 False 로 설정 한 후 ALLOWED HOSTS 를 설정 하면 어떤 ip 주소 로 접근 할 수 있 습 니까?)
오류 처리 솔 루 션:
404 와 500 이라는 자동 으로 던 지 는 오류 에 대해templates 폴 더 에 해당 하 는 오류 코드 의 템 플 릿 파일 을 직접 만 들 수 있 습 니 다.다른 오류 에 대해 서 는 app 을 정의 하여 이 오 류 를 처리 할 수 있 습 니 다.
1. 500 오류: 코드 에 bug 가 발생 했 습 니 다.예제 코드 는 다음 과 같다.
from django.http import HttpResponse
def index(request):
a = 2
b = 0
c = a/b
return c
2. 400 의 오류: 브 라 우 저 에 잘못된 url 을 입력 하면 404 오류 가 발생 합 니 다.
3.403 오류: 사용자 가 이 페이지 에 접근 할 수 있 는 권한 이 없습니다.예 를 들 어 사용자 가 접근 하고 있 는 것 을 정의 합 니 다.http://127.0.0.1:3000/페이지 를 들 여 올 때 하나 들 어 갈 까요?username = xxx, 이 페이지 에 접근 할 수 있 습 니 다. 그렇지 않 으 면 사용자 정의 403. html 를 되 돌려 줍 니 다.예제 코드 는 다음 과 같다.
# 1. views.py , index ,
from django.shortcuts import render, redirect, reverse
from django.http import HttpResponse
def index(request):
username = request.GET.get('username')
if username:
return HttpResponse('success')
else:
return redirect(reverse('errors:403'))
# 2. urls.py url , :
from django.urls import path, include
urlpatterns = [
path('errors/', include('errors.urls')),
]
# 3. errorsAPP templates 403.html,
# errors views.py 403 , :
from django.shortcuts import render
def view_403(request):
return render(request, 'errors/static/403.html')
# 4. errors urls.py url , :
from django.urls import path
from . import views
app_name = 'errors'
urlpatterns = [
# url html
path('403.html', views.view_403, name='403'),
path('405.html', views.view_405, name='405'),
]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.