上下文处理器_自定义上下文处理器

上下文

1、上下文:Django视图函数传递给模板的数据叫做上下文(即content参数)

2、一般来说,一个视图函数传递给模板的数据(上下文),只能在该模板中使用,其他模板是不能使用这些数据的(模板之间无继承、引用关系)
    ⑴A模板引用了B模板,即,B模板中的HTML代码以"变量"的形式添加到A模板中,此时B模板就相当于是A模板中的一部分
    ⑵因此A模板视图函数传递给A模板的数据,在B模板中是可以使用的    
    ⑶注:即使C模板同时引用了B模板,但是C模板依旧不能使用A模板中的变量

3、URL、视图函数、模板之间的关系:
    ⑴一般情况下一个URL对应一个视图函数、一个视图函数对应一个模板
    ⑵视图函数传递给模板的数据(上下文)只能在视图函数对应的模板中使用,其他模板是不能使用这些数据的
    ⑶上下文数据(content参数)是在HttpResponse对象中与模板一起传递下来的,所以模板只能使用自己的上下文(其他模板都没有接受到这些数据,肯定就没法使用了)
    ⑷A视图函数对应(引用)a模板,B视图函数对应(引用)b模板,那么A视图函数传递给a模板的数据(content参数)就只能在a模板中使用,b模板是不能使用这些数据的
    
例1:
⑴编辑视图

⑵编辑模板

⑶编辑模板

⑷编辑URL映射

⑸访问:index页面

⑹访问:demo页面

注:
1、从上面的例子中可以看出:视图函数传递给模板的数据(上下文)只能在视图函数对应的模板中使用,其他模板是不能使用这些数据的
    ⑴当然还需要注意下:在模板中接收上下文时 所使用的的变量名是正确的(与视图函数中定义的键名一致)

2、如果有一些数据(上下文)在很多模板中都会用到,那么岂不是需要在每个视图函数中都获取一次,然后再传递给视图函数对应的模板了么?这样的话,岂不是代码重复率就会很高了。为了解决这个问题,就有了我们这里需要学习的"上下文处理器"

3、在编写Django视图函数时,我们一般会在视图函数中以Python字典(dict)形式向模板中传递需要被调用或使用的变量并指定渲染模板,通常情况下,我们向模板的传递的字典变量与模板是一一对应的关系

4、有时我们还需要向模板传递全局变量,即每个模板都需要使用到的变量(比如站点名称, 博客的最

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值