404.html 페이지가 있지만 경우에 따라 404 및 500 등의 json 오류 메시지를 보낼 수 있기를 원합니다. 다음 페이지를 읽었습니다 :
https ://docs.djangoproject.com/en/dev/topics/http/views/#the-404-page-not-found-view
구현을 보여주는 어떤 종류의 예제가 있습니까? 내 urls.py에 있지만 오류가 발생해도 선택되지 않습니다.
- 답변 # 1
- 답변 # 2
이전 답변 외에도 views.py는 404로 HttpResponse를 반환해야한다고 말하는 것이 중요합니다 http 헤더의 상태입니다. 검색 엔진에 현재 페이지가 404임을 알리는 것이 중요합니다. 스패머는 때때로 어떤 위치로 연결되는 것처럼 보일 수있는 많은 URL을 생성하지만 다른 컨텐츠를 제공합니다. 그들은 종종 서로 다른 주소를 많이 만들어 거의 동일한 내용을 제공합니다. 그리고 그것은 사용자 친화적이지 않기 때문에 대부분의 SEO 가이드 라인은 그것을 처벌합니다. 따라서 동일한 의사 404 콘텐츠를 표시하는 많은 주소가 있으면 검색 웹 사이트의 크롤링 시스템에 적합하지 않을 수 있습니다. 이 때문에 사용자 정의 404로 제공하는 페이지의 상태가 404인지 확인하려고합니다. 그래서 여기 좋은 방법입니다 :
응용 프로그램의 urls.py에 추가 :
# Imports from django.conf.urls.static import static from django.conf.urls import handler404 from django.conf.urls import patterns, include, url from yourapplication import views ## # Handles the URLS calls urlpatterns = patterns('', # url(r'^$', include('app.homepage.urls')), ) handler404 = views.error404
응용 프로그램의 views.py에 추가 :
# Imports from django.shortcuts import render from django.http import HttpResponse from django.template import Context, loader ## # Handle 404 Errors # @param request WSGIRequest list with all HTTP Request def error404(request): # 1. Load models for this view #from idgsupply.models import My404Method # 2. Generate Content for this view template = loader.get_template('404.htm') context = Context({ 'message': 'All: %s' % request, }) # 3. Return Template for this view + Data return HttpResponse(content=template.render(context), content_type='text/html; charset=utf-8', status=404)
비밀은 마지막 줄에 있습니다 : status = 404
도움을 빕니다!
이 접근법에 대한 커뮤니티의 의견을 기다리겠습니다. =)
- 답변 # 3
기본 :
404 오류 처리를위한 사용자 정의보기를 정의하려면 URL 구성에서
handler404 = 'views.error404'
와 같은 handler404보기를 정의하십시오.기본 사항 외에도 몇 가지 참고할 사항 (사용자 정의 404보기) :
<올>Debug=False
에서만 사용할 수 있습니다. 모드.대부분의 대답에서 더 무시되는 것이 많았습니다.
404보기의 기본값은
와이즈 비즈 와이즈 비즈매개 변수 알림
이로 인해
django.views.defaults.page_not_found(request, exception, template_name='404.html')
내에서 404에서 500으로 리디렉션되었습니다.exception
에 정의 된 함수def get_exception_response(self, request, resolver, status_code, exception)
매개 변수를 찾을 수 없으므로core.handlers.base
관련 자료
- Django에서 사용자 지정 오류 페이지를 표시하는 방법
- 장고 양식이 예정된 경우에도 유효성 검사 오류를 반환하지 않습니까?
- python - django 314의 비밀번호 해싱 오류 - hasherspy
- postgresql - Django 용 postgressql을 구성하는 동안 오류가 발생했습니다
- python 3.x - django orm 오류 - 기본 키에 null을 삽입 할 수 없습니다
- javascript - vee-validate/yup이있는 vuejs3 앱에서 사용자 지정 오류 메시지를 표시하는 방법은 무엇입니까?
- mongodb - 파이썬에서 사용자 정의 예외를 사용할 때 오류가 발생합니다
- python - LightGBMRegressor 단일 출력에 대한 목록 오류로 사용자 지정 평가 손실 함수 반환
- Django에서 예외를 제외하고 try를 사용한 오류 처리
- python - Django Rest Framework에 사용자 정의 필드를 추가하는 방법이 있습니까?
- python - 장고 - 다음 문서에도 불구하고 사용자 정의 handler500이 작동하지 않음
- python - Django 오류 보고서에 대한 정확한 로깅 메시지
- JsonResponse를 사용하여 Django 일반 DeleteView 확인 페이지에 오류 메시지를 보내는 방법
- websocket - django 채널 사용자 지정 인증 미들웨어 __call __ ()에 2 개의 필수 위치 인수가 없습니다 - 'receive'및 'send'
- django drf - 사용자 지정 권한 : tokenauthentication : 권한을 위해 isauthenticated를 사용하는 이유
- python - Django Rest Framework에서 개체가 반복 가능한 오류가 아닙니다
- python - django rest framework - 응답이 정의되지 않았습니다 오류
- mysql - AWS Django Elastic Beanstalk 마이그레이션 오류
- python - Django rest_auth로 사용자 지정 로그인보기를 만드는 방법은 무엇입니까?
- sql - 사용자 지정 오류로 PostgreSQL-Error를 억제하는 방법
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- JavaScript 변수를 HTML div에 '출력'하는 방법
- python - 문자열에서 특정 문자 제거
이것은 나를 위해 일했다 :
해당 컨트롤러로 갈 때 원하는대로 할 수 있습니다.