Я думаю, что около 404 обработки в django имеется довольно много информации. Самым базовым c может быть представление 404, которое вы можете переопределить с помощью своей пользовательской логики (что, я думаю, не является предпочтительным, но может пригодиться в некоторых конкретных c случаях): https://docs.djangoproject.com/en/3.0/topics/http/views/#customizing -error -views
Предпочтительный метод будет глубже проникать в суть обработки запросов и ответов, где вы можете манипулировать вашими запросами, используя код статуса ответа 404
или любой другой. В вашем middleware
вы можете расширить и переопределить поведение существующих промежуточных программ или добавить свое собственное: https://docs.djangoproject.com/en/3.0/topics/http/middleware/
Ниже приведен простой пример промежуточного программного обеспечения, которое проверяет код состояния ответа и использует log.warning
когда ответ имеет код состояния 404
. В этом сценарии у вас будет единственное местоположение, отвечающее за регистрацию запрашиваемых ошибочных путей.
# myproject.middleware.py
import logging
logger = logging.getLogger(__name__)
class PageNotFoundMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
if response.status_code == 404:
logger.warning("Page not found at {}".format(request.path))
return response
в вашем settings.py
теперь вы можете добавить промежуточное ПО:
MIDDLEWARE = [
...
'myproject.middleware.PageNotFoundMiddleware',
]