服务电话:13693293278

客服咨询QQ:470942293

 
网站首页
公司介绍
付款方式
联系我们
Logo说明
合作伙伴
企业型网站建设
商务型网站建设
Flash型网站建设
定制型网站建设
OA系统开发
ERP系统开发
MIS系统开发
MES系统开发
移动开发Android
移动开发iOS
微信二次开发
网站维护
建站流程
功能模块
程序语言
静态生成
域名选择
网站上传
网站备案
网站维护
最新动态
行业资讯
Python
ThinkPHP
jQuery
PHP
Div+CSS
MySQL
Oracle

技术文章

Python
ThinkPHP
jQuery
PHP
Div+CSS
MySQL
Oracle

北京海思通科技有限责任公司
联系:01082462897
业务:haisitong@163.com
技术:470942293@qq.com
网址:http://www.haisitong.net/
QQ: 2223793800 470942293

Django使用上下文处理器context_processors传递参数

发布日期:2020-10-23 14:07:34

Django开发网站,通常都是通过views完成参数到模板template的传递。
存在问题:
(1)如果多个模板页面都需要同一个(些)参数时,就需要在每个views中定义参数、传递参数;
(2)如果使用模板继承时,父模板中的大量动态数据(如导航动态数据、登录用户信息等)就需要在每个views中来定义、传递参数;

这样传递参数比较繁琐,也不利于项目维护,Django提供的上下文处理器context_processors就是处理这类问题的。

接下来通过例子讲述。


1.常规处理方法
比如有两个模板页面:t1.html   t2.html,都需要keyword、description两个参数,那么对应的views定义如下图:

然后,在对应的t1.html、t2.html页面中就可以使用如下代码直接引用:
{{ keyword }}  {{ description}}


2.使用context_processors处理方法
比如有两个模板页面:t1.html   t2.html,都需要keyword、description两个参数。
接下来使用上下文处理器context_processors完成参数传递。

(1)创建上下文处理器
最对应的app下面创建一个python文件,命名为context_processors.py(也可以命名为其他文件名),如下图:

在context_processors.py文件编写如下方法定义:


(2)在settings配置文件中配置上下文处理器
打开项目的settings配置文件,在context_processor中添加自定义的上下文处理器,格式为:app_name.context_file_name.def_name,如下图:


(3)直接使用
在对应的t1.html、t2.html页面中就可以使用如下代码直接引用:
{{ keyword }}  {{ description}}



Copyright@(2010-2024) 北京海思通科技有限责任公司 客服邮箱:haisitong#163.com(请将#换成@)
京ICP备19051925号