首页 > 其他 > 详细

Django 上下文管理器,为父模板添加动态数据

时间:2019-08-29 21:57:12      阅读:87      评论:0      收藏:0      [点我收藏+]

1.摘要:模板继承可以减少页面内容的重复定义,实现页面内容的重用。

但是当父模板中有动态数据的话,这些动态数据在子模版中是不会显示的。我们可以通过自定义上下文处理器来解决

 

2.Django上下文处理器(Context Processor)

上下文处理器是接收HttpRequest为参数并返回dict形式的数据的函数。它的主要用途是将所有模板共享的公共数据添加到上下文中,从而不必在每个视图中重复定义。

在settings.py文件中内置了多个上下文处理器:

 1 TEMPLATES = [
 2     {
 3         BACKEND: django.template.backends.django.DjangoTemplates,
 4         DIRS: [os.path.join(BASE_DIR, templates)],
 5         APP_DIRS: True,
 6         OPTIONS: {
 7             # 上下文处理器:context_processors
 8             context_processors: [
 9                 django.template.context_processors.debug,
10                 django.template.context_processors.request,
11                 django.contrib.auth.context_processors.auth,
12                 django.contrib.messages.context_processors.messages,
13                 django.template.context_processors.media,
14             ],
15         },
16     },
17 ]

每个内置处理器的功能可查看官方文档:https://docs.djangoproject.com/zh-hans/2.1/ref/templates/api/#built-in-template-context-processors

 

3.开始动手,定义自己的上下文处理器

   3.1.在相应的app下新建py文件,如context_processors.py

技术分享图片

 

 

   3.2.定义一个函数如navigation_bar,接收request参数。

 技术分享图片

 

 

   3.3.将自定义的上下文处理器添加到settings.py文件中

技术分享图片

 

 

   3.4.模板中的使用

 

原文地址:http://www.caodahua.cn/detail/3/

Django 上下文管理器,为父模板添加动态数据

原文:https://www.cnblogs.com/jum-bolg/p/11432210.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!