Django:自定义中间件被调用两次

2024-02-20

我有一个自定义中间件,每个请求都会调用两次,我不明白为什么。 这是我的中间件:

class MyMiddleWare(object):

  def process_request(self, request):
    print 'FOO'
    return None

这是我的中间件设置:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'MyMiddleware',
)

这是主页请求后控制台中的输出:

[28/Jun/2013 19:48:26] FOO
[28/Jun/2013 19:48:26] "GET / HTTP/1.1" 200 7468
[28/Jun/2013 19:48:27] FOO

我尝试注释掉所有其他中间件,问题是一样的。我应该怎么办?

ps:所描述的行为在每个视图中都是可复制的

UPDATE:

我尝试实施process_view而不是process_request它按预期被调用一次......为什么?

UPDATE 2:

process_response被称为两次process_request

UDATE 3:

噢,该死!这是对 favicon.ico 的请求(我自己没有定义)...谁在调用这个文件?


问题是,如果您通过将 favicon.ico 定义为 django url 来提供服务(如下面的代码):

(r'^favicon\.ico$',
  'django.views.generic.simple.redirect_to',
  {'url': settings.MEDIA_URL+'images/favicon.ico'}),

您的所有中间件都会被调用两次:1 次用于您请求的页面 + 1 次用于 favicon(始终由浏览器调用)。 解决方案很简单:不要使用 django url 来为您的 vaficon 提供服务,而是输入如下内容:

<link rel="icon" type="image/png" href="{% static 'core/img/favicon.ico' %}" />

in the <head>您的基本模板!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django:自定义中间件被调用两次 的相关文章

  • InterfaceError:连接已关闭(使用 django + celery + Scrapy)

    当我在 Celery 任务中使用 Scrapy 解析函数 有时可能需要 10 分钟 时 我得到了这个信息 我用 姜戈 1 6 5 django celery 3 1 16 芹菜 3 1 16 psycopg2 2 5 5 我也使用了psyc
  • 使用 Http Post 发送图像

    我想使用 Http Post 将图像从 android 客户端发送到 Django 服务器 该图像是从图库中选择的 目前 我正在使用列表值名称 Pairs 将必要的数据发送到服务器并接收来自 Django 的 JSON 响应 是否可以对图像
  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • django.db.utils.ProgrammingError:关系“django_content_type”不存在

    我有一个项目 我在我的电脑上慢慢建立起来 并且运行良好 我只是想将它放到服务器上 但收到此错误 django db utils ProgrammingError 关系 django content type 确实 不存在 我无法解决这个问题
  • 如何让 Django 和 ReactJS 协同工作?

    New to Django and even newer to ReactJS I have been looking into AngularJS and ReactJS but decided on ReactJS It seemed
  • Django - 使用静态文件的奇怪行为

    我是姜戈的新手 我试图理解静态文件 css 和图像 发生了什么而变得疯狂 问题的简历如下 当我使用来自第三方应用程序 Haystack 的静态视图时 我无法使用静态文件 我的项目有这样的目录结构 1001empbr name of the
  • Django-多个端口上的会话 cookie 和站点

    我有多个 Django 项目在一台服务器上运行 使用gunicorn http gunicorn org and nginx http wiki nginx org 目前 它们都被配置为使用 nginx 中的服务器指令在同一 IP 地址的唯
  • 在 Django 中删除特定用户的所有会话的最优化方法?

    我正在运行 Django 1 3 使用会话中间件和身份验证中间件 settings py SESSION ENGINE django contrib sessions backends db Persist sessions to DB S
  • Django 简单历史 - save_without_historical_record() 对我不起作用

    我花了两天时间努力完成这项工作 我正在尝试使用 Django Simple History 进行记录而不保存历史记录 情况如下 我有一个模型 class Artikel models Model treaty models ForeignK
  • App Engine 上的 Django 与 webapp2 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Django User 模型,添加功能

    我想向 Django 的默认用户模型添加一个新函数 用于检索模型类型的相关列表 这样的 Foo 模型 class Foo models Model owner models ForeignKey User related name owne
  • Django TastyPie 地理距离查找

    我正在使用 TastyPie 进行地理距离查找 这有点困难 因为 TastyPie 官方不支持它 在 Github https gist github com 1067176 上我找到了以下代码示例 def apply sorting se
  • 将 Django 中的所有视图限制为经过身份验证的用户

    我是 Django 新手 我正在开发一个项目 该项目有一个登录页面作为其索引和一个注册页面 其余页面都必须仅限于登录用户 如果未经身份验证的用户尝试访问这些页面 则必须将他 她重定向到登录页面 我看到 login required装饰器会将
  • 在 Django 模板中通过键访问字典

    我正在将字典从我的视图传递到模板 所以 key1 value1 key2 value2 传入并循环键 值对很好 但是我还没有找到从特定键直接在视图中访问的优雅解决方案 例如 key1 例如 bu json items key1 我可以使用一
  • Celery为每个任务实例安排了带有到期时间的任务?

    我有一个带有 celery 4 1 0 的 django 应用程序和带有数据库调度程序的 celerybeat 我想要的是从管理站点运行定期任务并为每个任务设置过期时间 expireperiodictask 中的属性是一个时间调度程序 停止
  • django 1.9 不为自定义用户模型创建表

    我的项目名称是timecapture 这是 timecapture settings py 的相关部分 INSTALLED APPS django contrib admin django contrib auth django contr
  • django Q 对象嵌套reduce

    得到非常复杂的查询 请不要尝试解决示例 问题更复杂 crit crit append Q firstcond name Q firstcond isnull True crit append Q secondcond name Q firs
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • django 迁移地狱,丢了一张表。试图把它找回来

    所以我在数据库中删除了一个表 并且希望将其恢复 重新运行迁移会出现错误表不存在 经过一番搜寻后 我了解到我可以删除 django migrations 中应用程序名为我的应用程序的所有内容 所以我这样做了 重新运行迁移 它开始工作 然后抱怨
  • 如何将 Django 中的权限添加到模型并使用 shell 进行测试

    我在模型中添加了 Meta 类并同步了数据库 然后在 shell 中创建了一个对象 它返回 false 所以我真的无法理解错误在哪里或者缺少什么是否在其他文件中可能存在某种配置 class Employer User Employer in

随机推荐

  • 从 Azure Blob 存储读取文件

    我想从 azure 存储中读取 PDF 文件字节 因为我有一个文件路径 https hostedPath pdf 1001 12 Jun 2012 18 39 05 594 pdf 那么是否可以通过直接传递路径名来从 blob 存储中读取内
  • DDD是否适合所有类型的应用?

    对于这里和其他论坛提出的很多问题 我看到的一个常见反应是 您不需要为此执行 DDD 它是一个简单的 CRUD 应用程序 DDD 是一种过度设计 嗯 我是 DDD 的新手 我觉得 DDD 中有很多元素具有普遍吸引力并且可以全面使用 无论您的应
  • Powershell 中的本机 .tar 提取

    我有一个 tar gz我需要提取的文件 我已经处理了gunzip位GzipStream对象来自System IO Compression 但我找不到任何用于处理该命名空间中的 tarball 的内容 有没有办法处理 tarPowershel
  • logrotate 日期格式似乎不支持 %H:%M:%S

    我是 logrotate 的新手 当配置到 dateformat 属性时 logrotate 似乎不支持 strftime H 这是配置 daily rotate 2 size 3M missingok notifempty dateext
  • 在 Prolog 中交换列表的连续项

    我正在尝试编写可以交换列表中两个元素的 Prolog 代码 但前提是它们是彼此连续 那是 conseq swap d e a g d e f X 应该给出 X a g e d f d 和 e 是连续的 However conseq swap
  • 在单个事务中发送多个 SQL 命令

    我有一个巨大的清单INSERT INTO 字符串 目前我运行它们 using SqlConnection connection new SqlConnection connectionString connection Open forea
  • 按钮位于画布中央

    我有 4 个重叠的画布 充当图层 绝对定位并水平和垂直居中 在此画布上 我想在画布中心的一列中覆盖四个 HTML CSS 按钮 用于游戏菜单 我是 CSS 和 HTML 的新手 我一直无法弄清楚如何让按钮在绝对定位的画布上居中 我怎样才能做
  • 通用扩展类并实现接口[重复]

    这个问题在这里已经有答案了 这听起来可能是一个奇怪的问题 但是如何定义一个必须扩展类并实现接口的泛型呢 我目前有一个具有以下原型的通用函数 public static
  • cudaArray 与设备指针

    我对设备指针和设备指针的预期用途之间的区别感到困惑cudaArray结构 有人可以解释一下为什么我会使用其中一种而不是另一种吗 我的基本问题是 在浏览文档并阅读 CUDA by Example 一书之后 我不明白 API 设计者的意图 从我
  • 使用 Sprite Kit 创建自定义滑块 - 如何传递@selector?

    我正在开发的 Sprite Kit 游戏使用自定义滑块充当颜色选择器 颜色是从滑块轨道图形中选取的 这是一个UIImage包含梯度 我研究过使用定制的UISlider 但是标准的 IOS UI 控件不能很好地与 Sprite Kit 的场景
  • 如何通过 python 脚本在 ArcGIS 中添加 shapefile?

    我正在尝试使用 Python 自动执行 ArcGIS Desktop 通常使用 ArcMap 中的各种任务 并且我一直需要一种将形状文件添加到当前地图的方法 然后对其做一些事情 但那是另一个故事 到目前为止我能做的最好的就是添加一个laye
  • AngularJS ng-options 将数据类型添加到选项的值

    尝试使用最新版本 1 5 8 的 AngularJS 和 ng options 来填充下拉列表 问题是它添加了数据类型和值 如下所示
  • 如何将YUV_420_888图像转换为位图[重复]

    这个问题在这里已经有答案了 我正在开发 AR 项目 我需要捕获当前帧并将其保存到图库 我可以使用AR core中的Frame类获取图像 但图像的格式是YUV 420 888 我已经尝试了很多解决方案来将其转换为位图 但无法解决它 这就是我转
  • 在 Safari 9.1.2 中,悬停时的 SVG 转换失败 (11601.7.7)

    我试图在悬停时将文本和 svg 淡入另一种颜色 a color ff0000 display inline block margin 0 0 0 1em text decoration none text transform lowerca
  • Linux 中 C 语言的消息框

    我想在 Linux 中用 C 执行程序后显示 成功 弹出消息 它应该在 KDE 和 GNOME 上运行 我怎样才能做到这一点 您正在寻找桌面通知 http www galago project org specs notification
  • 如何将 Apache 配置为仅分叉一个子进程/工作进程?

    我希望启动 apache 以便它分叉一个子进程 我正在分析一个模块 我知道 X 标志 根据文档 两个指令对活动子进程的数量设置了硬性限制 以及子进程中的服务器线程数 并且只能是 通过完全停止服务器然后再次启动来更改 ServerLimit
  • JFormattedTextField 仅限于 0 或 1

    我想限制用户可以在文本字段中输入的字符 如何限制 JFormattedTextField 仅接受 0 或 1 的 8 位数字 Use 文档过滤器 https stackoverflow com a 9430683 714968与模式JTex
  • 使用 FBGraph 登录 Facebook

    我是 iOS 开发新手 我想从我的 iPhone 应用程序连接到 Facebook 我跟着FBGraph API https github com reallylongaddress iPhone Facebook Graph API tr
  • Docker - 在源文件中构建 Arg

    我正在尝试构建一个 Docker 容器 我想将其源标签作为参数传递 构建脚本 docker build pull true build arg version version Docker 文件 ARG version FROM regis
  • Django:自定义中间件被调用两次

    我有一个自定义中间件 每个请求都会调用两次 我不明白为什么 这是我的中间件 class MyMiddleWare object def process request self request print FOO return None 这