问题标签 [django-middleware]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - Django中的中间件和视图之间有什么东西可以插入我的代码吗?
和视图之间有什么东西middleware
可以插入我的代码,还是我必须继承一些东西Django
来提供这个功能?
让我先解释一下为什么我需要这个,也许您可以提出更好的解决方案。我想根据一些配置限制我的一些 url。而且,-我希望此配置成为 url 配置的一部分-根据提供的配置,我想重定向等到其他视图。
我所说的“部分 url 配置”的意思类似于以下内容。
这似乎是应该由中间件完成的事情,但我不想用中间件来做这件事有两个原因。- 我不想维护单独的配置。- 我不想再对 url 模式进行正则表达式匹配,url resolver 已经在这样做了
因此,如果我能在查看之前找到一种方法来插入一些功能并且可以达到提供的配置,它就解决了我的问题。
django - 安装片段
如何在 django 中安装代码片段?(特别是这个)
我有这个文件/{project}/snippets/EnforceLoginMiddleware.py
,我已经尝试了任意数量的排列MIDDLEWARE_CLASSES
来加载它以及谷歌搜索django snippets install
无济于事:(
任何帮助将不胜感激:)
PS(为什么我找不到任何关于安装片段的文档或示例。也许我只是一个糟糕的谷歌人)
python - 为什么 Django 的每站点缓存中间件不适合我?
我正在使用 Django 1.3 beta 1 并设置 memcached。我settings.py
根据Django 的说明对我的指令进行了更改:
这是我正在打的测试视图功能:
我总是uncached
在开发服务器的输出上打印出来,而且我总是会访问数据库。为什么?我是遗漏了什么还是完全误解了缓存?
编辑#1:
模板片段缓存工作得很好。我只是错过了什么吗?请帮忙。
django - 在中间件中动态更改 SITE_ID 是否被认为是个好主意?
(这不是“根据对多个站点的请求动态更改 Django 设置变量”的重复,因为前面的问题涵盖了在运行时进行更严重的重新配置)
我sites.Site
用来将内容绑定到我的项目中的域/主机(通过外键)。选择合适Site
的基于request.META['HTTP_HOST']
发生在我的自定义中间件中。
但是,我知道这样使用sites
框架并不完全是规范的方式(我有一个应用程序实例为不同的域提供不同的数据,而sites
- AFAIK - 旨在与多个实例一起工作,每个域一个)。
最困扰我的元素是settings.SITE_ID
- 将当前应用程序实例与一个Site
(域)联系起来的静态设置。这用于多个地方,即contrib.auth
(在密码重置电子邮件中撰写完整的绝对网址)。因此,SITE_ID
基于request.META['HTTP_HOST']
.
所以我的问题是:
动态更改 SITE_ID(即在中间件中)是否是个好主意?
文档指出,在运行时更改设置通常是个坏主意(此处),但在这种情况下(在足够早的中间件中)这样做可能很好。
(编辑):
它在本地按预期工作(Django 测试客户端),但我正在考虑在具有多个线程和/或进程的生产环境中的并发请求。
django - 异常电子邮件通知期间的 Django 过滤器字段
在我们的生产中,我们使用 Django 的自动化方法来获取有关异常的电子邮件通知。
这对一个问题非常有效,整个 POST 数据通过电子邮件发送给所有开发人员。
一些 POST 字段可能是敏感的用户数据(密码或更糟 - 信用卡)。
有没有办法告诉 Django 过滤哪些字段?我正在考虑创建一个中间件,以清除异常时某些字段的 request.POST,唉,看来我无法更改 request.POST。
有任何想法吗 ?
python - 以 Django 开始的事务
我阅读了 Django 文档中关于事务管理的章节。据我了解,事务一TransactionMiddleware
被调用就开始了。然后通过使用@commit_on_success
,@commit_manually
就有可能控制事务结束。
我的问题:是否有可能在不完全摆脱 TransactionMiddleware 的情况下控制事务的开始。我担心的是 Django 框架的许多部分实际上依赖于 TransactionMiddleware 的存在,所以我真的不想破坏它。我希望它用于所有视图,除了那些属于我明确指定的应用程序的视图。最重要的是,我希望能够完全控制某些视图组的事务行为 - 从开始到结束。我应该采取什么方法?是否有任何外部应用程序、库可以帮助我?事务是急切地创建还是懒惰地创建——一旦发生第一个数据库命中?
python - Django - 错误 socialregistration.middleware
刚才我用 mercurial 将我的远程仓库从我的服务器克隆到我的计算机上。
我将设置 sqlite3 的 settings.py 更改为数据库引擎,并尝试运行 Django 内置网络服务器:
我的服务器上一切正常。为什么在本地主机中?
-- UDPATE
安装 pyfacebook 并修复它。现在我得到这个错误访问/
django - django www 与非 www 的中间件身份验证问题
我的 Django 应用程序的行为一直不一致。
如果我在没有 www 的情况下登录,然后在前面加上 www,则它没有经过身份验证,以及它们的所有组合。(www.mydomain.com 和 mydomain.com 在身份验证方面就像不同的站点)
如果验证码很重要,我这里根据教程写了一个中间件:http: //onecreativeblog.com/post/59051248/django-login-required-middleware
到目前为止,我已经解决了强制附加 www, using 的问题PREPEND_WWW = True
,但我仍然想了解这个问题;)
有谁知道可能发生了什么?提前致谢!
django - 如何正确测试需要 Django 会话的中间件?
我试图弄清楚如何在 django 中测试中间件。我正在编写的中间件在特定条件下(如果电子邮件中发送的密钥有效)登录用户。所以很明显我依赖于django.contrib.auth
and django.contrib.sessions
。
我在测试登录部分时遇到问题。我正在提出这样的请求:
由于未设置会话而失败。所以接下来,我在我的测试类中写了一个小片段:
并且由于'User' object has no attribute 'backend'
. 我不确定这意味着什么,但我怀疑我需要运行我安装的所有中间件。
我真的不想为了运行中间件而为此制作一个假视图,但此时我看不到另一个选项。
所以我只想知道,在我不得不一直追着这只兔子之前,有没有一种不需要那么多胶带的方法?
django - 对于 Django 中间件类, process_request 怎么能正常工作,但 process_exception 不是调用?
我在 Django 中创建了我自己的中间件类,直到最近它都运行良好。奇怪的是 process_request 仍然被调用得很好,但是即使响应是 500 - internal server error,process_exception 也根本没有被调用。为什么?
我是否将我的中间件类声明为设置文件中已安装中间件列表中的第一个或最后一个条目没有区别。
谢谢,戴夫