python 通信中间件_python – Django – 让中间件与视图/模板进行通信

好吧,这可能是一个非常愚蠢的问题,但我是Python / Django的新手,所以我还不能真正地围绕它的范围概念.现在我正在写一个 middleware

类来处理一些东西,我想设置我的视图和模板可以访问的“全局”变量.这样做的“正确”方法是什么?我考虑做过这样的事情:

middleware.py

from django.conf import settings

class BeforeFilter(object):

def process_request(self, request):

settings.my_var = 'Hello World'

return None

views.py

from django.conf import settings

from django.http import HttpResponse

def myview(request):

return HttpResponse(settings.my_var)

虽然这有效,但我不确定它是“Django方式”还是“Python方式”.

所以,我的问题是:

这是正确的方法吗?

2.如果它是正确的方法,添加可以在中间件的实际模板中使用的变量的正确方法是什么?假设我想评估一些内容,并且我想在中间件中将变量headername设置为“我的站点名称”,并且我希望能够在所有模板中执行{{headername}}.按照我现在的方式做它我必须在每个视图中的上下文中添加headername.反正有没有绕过这个?我在思考CakePHP的$this-> set(‘headername’,’我的网站名’);

3.我使用中间件类作为CakePHP的beforeFilter的等价物,它在每个视图(或CakePHP中的控制器)被调用之前运行.这是正确的做法吗?

4.完全不相关,但这是一个小问题,将一个变量的内容打印到浏览器ala print_r的好方法是什么?假设我想查看传递给视图的请求中的所有内容?是pprint的答案吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值