django中context_processors的理解

1.是什么?字面理解:上下文处理器.

 

2.为什么?模板中,想使用request对象,则必须要求视图传递进来,每个模板都传递request是否造成大量代码冗余?是否可在settings文件中配置,让所有模板共用一个request全局变量?

可以,这类似于Flask框架中的g变量,config变量,request变量,模板中无需导入,就可直接使用的全局变量或特有变量.

 

3.怎么做?django settings文件中自带4个上下处理器,如下:

'context_processors': [

                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages']

若想添加,可直接从django.template.context_processors导入常用函数:

'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',

                "django.template.context_processors.i18n",
                'django.template.context_processors.media',
                'django.template.loaders.filesystem.Loader',
                'django.template.loaders.app_directories.Loader',
            ]

这样,模板中就可以直接使用debug,request,auth,messages,i18n等变量.{{request.user.username}}

也可以自定义上下文处理器,进行导入.

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值