django创建自定义模板处理器的实例详解

 更新时间:2017年08月14日 10:41:21   投稿:lqh  
这篇文章主要介绍了django创建自定义模板处理器的实例详解的相关资料,这里说明了如何需要django模板处理器及实现方法,希望大家能理解掌握这部分内容,需要的朋友可以参考下

django创建自定义模板处理器:

一、需求来源:

在django开发中,页面是通过template(模板)进行渲染的,对于一些数据,可以通过{{ 变量 }}的方式进行传递。但是,如果整个网站中,或者整个网站的大部分页面都用到了一些变量或者数据,那么每次渲染的时候都传递一次这几个数据显得相当的冗余。这与django的DRY(Don't repeat yourself)思想不符,因此django提供了一种方式,让你能自定义处理器。

二、django默认的处理器:

在django开发中,django默认为你加载了四个处理器,这些处理器是django包自带的。你可以在settings.py中的TEMPLATES的OPTIONS的context_processors中找到所有django为你默认加载的处理器。
其中有包括:

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

三、自定义django处理器:

建议在项目的主app下(也就是你的项目名称的app下)创建一个文件叫做context_processors.py
不管是自定义的处理器还是django自带的处理器,都是定义一个函数,这个函数带有一个request的参数,返回一个字典,用来表示模板中的参数。

比如我们要创建一个带有个人信息的处理器,格式如下:

def mycontact(request):
  return {
    'telephone': 'aaa',
    'qq': 'bbb',
    'email': 'cc@163.com'
  }

在settings.py配置文件中,找到TEMPLATES里面的context_processors,然后在后面添加你的自定义的处理器,比如我们的项目名称叫mysite,然后我把context_processors.py放到了mysite/mysite下面,也就是和settings.py同级的目录下,因此加载的路劲为mysite.context_processors.mycontact,因此,现在的context_processors中的数据如下:

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

以后你就可以在你的模板文件中,通过{{变量}}的方式引入你的变量了。

注意事项:你必须在TEMPLATES中将APP_DIRS设置为True,django才会加载你放在django的app下面的处理器。

如有疑问请留言或者到本站社区交流讨论,大家共同进步,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Python中实现输入超时及如何通过变量获取变量名

    Python中实现输入超时及如何通过变量获取变量名

    这篇文章主要介绍了Python中实现输入超时以及通过变量获取变量的名字,本文给大家分享了解决思路主要是通过多线程法实现,需要的朋友可以参考下
    2020-01-01
  • python中pandas库中DataFrame对行和列的操作使用方法示例

    python中pandas库中DataFrame对行和列的操作使用方法示例

    这篇文章主要介绍了python中pandas库中DataFrame对行和列的操作使用方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Pytorch矩阵乘法(torch.mul() 、 torch.mm() 和torch.matmul()的区别)

    Pytorch矩阵乘法(torch.mul() 、 torch.mm() 和torch.m

    在深度学习和神经网络的世界里,矩阵乘法是一项至关重要的操作,本文主要介绍了Pytorch矩阵乘法,包含了torch.mul() 、 torch.mm() 和torch.matmul()的区别,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 一文带你掌握Matplotlib图形绘制

    一文带你掌握Matplotlib图形绘制

    Matplotlib是一个基于Python的绘图库,它提供了一整套与Matlab相似的命令API,非常适合交互式绘图,这篇文章主要给大家介绍了关于Matplotlib图形绘制的相关资料,需要的朋友可以参考下
    2023-09-09
  • Python+PyQt5实现灭霸响指功能

    Python+PyQt5实现灭霸响指功能

    这篇文章主要介绍了Python+PyQt5实现灭霸响指功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • python中@property的作用和getter setter的解释

    python中@property的作用和getter setter的解释

    这篇文章主要介绍了python中@property的作用和getter setter的解释,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • python 捕获shell脚本的输出结果实例

    python 捕获shell脚本的输出结果实例

    下面小编就为大家带来一篇python 捕获shell脚本的输出结果实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Python绘图实现坐标轴共享与复用详解

    Python绘图实现坐标轴共享与复用详解

    这篇文章主要为大家详细介绍了Python在绘图时如何实现坐标轴共享与复用,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • Python matplotlib实战之箱型图绘制

    Python matplotlib实战之箱型图绘制

    箱型图(Box Plot),也称为盒须图或盒式图,是一种用作显示一组数据分布情况的统计图,因型状如箱子而得名,本文主要为大家介绍了如何使用Matplotlib绘制箱型图,需要的小伙伴可以参考下
    2023-08-08
  • python实现发送邮件

    python实现发送邮件

    这篇文章主要为大家详细介绍了python实现发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03

最新评论