- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 Django 中有一个相当大的项目,这是一个相当大的框架,我使用了相当多的应用程序、中间件、上下文处理器等。规模意味着当代码库的一部分运行在我不希望的地方请求,很难确定它为什么这样做。直接代码检查过于耗时,因为在调试器中单步执行整个请求也是如此。
在这种特殊情况下,我的问题是我在每个响应上都设置了“Vary: Cookie”,包括一些我想大量缓存的响应和不需要任何 cookie 的响应。我怀疑但不知道如何证明某些中间件或上下文处理器正在访问 request.session
即使它不使用结果——尽管它可能是间接访问,例如通过 request.user
。当然,它可能完全是另外一回事。
在 Python 中,您如何在大型代码库中从结果(“响应中添加了 Vary header ”)追溯到其原因?
最佳答案
这里有一个想法:猴子修补 django HttpResponse 类,以便它的 __setitem__
方法在设置的 header 为 Vary
时引发异常。您可以在创建时从其他什么都不做的中间件来处理它。它应该从设置标题的行中为您提供一个很好的回溯。
class MonkeyPatchMiddleware(object):
def __init__(self):
from django.http import HttpResponse
original_set_item = HttpResponse.__setitem__
def __setitem__(self, header, value):
if header == "Vary":
raise ValueError
original_set_item(self, header, value)
HttpResponse.__setitem__ = __setitem__
将中间件安装为 django 设置文件中中间件堆栈中的第一件事。
关于python - 在大型 Python 代码库中从结果追溯到原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13333382/
在我的 chrome 控制台中,我试图了解导致调用某些 javascript 的步骤是什么文件。实际上,当我在单击输入文件标签后从我的计算机导入文件时,会调用一些 javascript 文件,但我不知
最近,我在 Kali Linux 中使用了 wifi phisher 工具。当我在列表中输入 AP 数量时,我在终端中得到以下跟踪: Traceback (most recent call last)
我叫米奇。以前,我在堆栈交换方面的数学和物理方面获得了惊人的帮助。我认为溢出是相关的,但我意识到我应该将这个问题放在一个问题上。我已经尝试了很多次,以尝试向自己介绍编程知识,特别是python,阅读全
我们内部开发了大约七个不同的网站。它们是跟踪不同人力资源申请并帮助我们的一些员工通过日程安排完成工作的网站。今天,首席软件设计师告诉我开始使用 phpUnit 为我们现有的代码编写测试用例。我们的主网
这是我的问题: 我使用 Subversion 有一段时间,直到我切换到 Git。又过了一些时间。 没有将历史从 Subversion 导入到 Git。这是一个严格的检查,删除 .svn 目录,然后是
我的目标是在这个gmail gem中找到调用save_attachments_to的地方自述文件示例: folder = "/where/ever" gmail.mailbox("Faxes").em
我在运行 C++ 应用程序时遇到段错误。在 gdb 中,它以某种方式显示我的一个指针位置已损坏。但是我在申请期间创建了 10 万个这样的对象指针。我怎样才能看到导致崩溃的一个我可以在 bt 命令中执行
我现在正在 BigQuery 中设置 GA4/Firebase 并使用 dbt在它之上进行分析。 由于这两个源的数据非常大,我想激活增量加载,只更新今天+昨天的分析模型(而不是每次都完全刷新所有数据)
我正在使用 React Redux。我的代码中的值似乎被覆盖了。我的已连接 (mapStateTo...) 组件的 this.props 来 self 的代码的未知部分。 我的任务直接链接到另一个关于
我一直在学习 Python 并从互联网上获取不同的东西并将它们全部放入我正在制作的这个游戏中:“你醒来......”这是一个基于文本的 assci RPG(滚动游戏)。它一直有效,直到出现此错误: T
上下文 由于使用 numpy.ma 模块进行掩码比直接 bool 掩码慢得多,因此我必须将后者用于我的 argmin/argmax-计算。 一点比较: import numpy as np # Mas
我在 Visual Studio 2013 中使用 asp.net mvc 迈出了第一步,但遇到了一个奇怪的问题。 我以 MVC 的形式开始了我的项目,并且没有选中“Web API”框来包含核心引用。
我是一名优秀的程序员,十分优秀!