我有一个关于生产的 django 项目。在我的settings.py
文件Debug=False
中,以避免当Debug=True
我听说我正在尝试设置的 python 日志记录模块时出现的安全风险。但是在阅读了我理解的文档之后,我应该将日志实例放在可能出现错误的每段代码中,但是如果我需要处理 404 错误怎么办?我该如何处理它们?请任何人指导我
问问题
386 次
1 回答
1
我认为在 django 中有很多关于 404 处理的信息。最基本的可能是您可以使用自定义逻辑覆盖的 404 视图(我认为这不是首选,但在某些特定情况下可能会派上用场):https ://docs.djangoproject.com/en/3.0/主题/http/views/#customizing-error-views
首选方法将深入到请求和响应处理的核心,您可以在其中操作具有响应 status_code404
或其他内容的请求。在您的middleware
中,您可以扩展和覆盖现有中间件的行为或添加您自己的:https ://docs.djangoproject.com/en/3.0/topics/http/middleware/
下面是一个简单的中间件示例,它检查响应的状态代码并log.warning
在响应的 status_code 为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',
]
于 2020-02-16T13:09:42.157 回答