Django 1.11 自定义标签之后,可以不在每个html页面引用就生效吗?

摘要: 如题,为了方便,我们会自定义一些django的tag, 然后按照一般的常规思路,包括某些文档上所描述的都是需要在用的页面上去引入这个tag, 如果一个项目有 几百个页面都需要用到这个tag, 那么在几百个模板页面都会引入,这确实不是一个好主意,但很多人就是这么干的。其实在Django里面可以将自定义的 tag 加入到启动中,以后再模板页面再也不需要去引入了,这样开发也方便,修改也方便。

如题,为了方便,我们会自定义一些django的tag, 然后按照一般的常规思路,包括某些文档上所描述的都是需要在用的页面上去引入这个tag, 如果一个项目有 几百个页面都需要用到这个tag, 那么在几百个模板页面都会引入,这确实不是一个好主意,但很多人就是这么干的。其实在Django里面可以将自定义的 tag 加入到启动中,以后再模板页面再也不需要去引入了,这样开发也方便,修改也方便。

以前的方式, 在每个模板页面都有类似的代码:

{%load functionTag%}

这个 functionTag 就是自己定义的一个customize tag, 如果几百个页面都引入,痛苦吗?

改进后的方式,只需要引入一次,其他页面无需显示引入. 在django 1.9.x 以前与1.9.x 以后是不同的处理方式.

在django 1.9.x 以前,可以这样用:
from django import template
template.add_to_builtins('app.templatetags.functionTag') 

你可以把这段代码加入到 urls.py 或者settings.py中。

但是在 1.9.x 以后的版本发生了变化, 看了官方文档,为了这个特殊功能,专门做了改进,标准做法就是在settings.py 中配置 。


具体配置例子如下, 记得在settings.py中:

上一篇: Django开发注意事项,新手必看(转)
下一篇: 建议复杂的oracle嵌套查询用with as 语句来处理,要么用中间表
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章来源于互联网, 若有侵权, 联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布文章.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号