Django零基础入门之自定义标签及模板中的使用

 更新时间:2021年09月02日 11:45:56   作者:孤寒者  
这篇文章主要介绍了Django零基础入门之自定义标签及模板中的使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Python客栈送红包、纸质书

紧接上文——《Django零基础入门之自定义过滤器及模板中的使用》,本文来讲一讲自定义标签!!!

自定义标签:

源码学习:
template.Library().simple_tags():

1
2
3
4
5
6
7
8
def simple_tag(self, func=None, takes_context=None, name=None):
    """
    Register a callable as a compiled template tag. Example:
 
    @register.simple_tag
    def hello(*args, **kwargs):
        return 'world'
    """

共有三个参数:

  1. func 编译的函数(一个Python函数);
  2. takes_context在第二部分会讲解;
  3. name同自定义过滤器中filter()函数中的name的作用一致。

第一部分

自定义标签入门操作!

在模板中使用自定义标签时传递参数!

通过自定义标签实现——按指定格式(datetime模块的格式)展示当前时间!

(1)视图函数编写:

(ceshi/views.py文件)

在这里插入图片描述

(2)编写模板文件:

(templates/ceshi/test1.html文件)

在这里插入图片描述

(3)自定义标签实现:

(ceshi/templatetags/common_extras.py文件)
format_string接收前端模板使用标签传递的参数。

在这里插入图片描述

(4)效果展示:

在这里插入图片描述

第二部分

自定义标签中级操作!

关于源码中参数takes_context的讲解及使用(也实现第一部分所实现的功能)!
takes_context的值是一个布尔值,默认是False;
如果将其设置为True,则可以使用从上下文中传入的参数(即视图函数中传递给模板的context参数)!

(1)视图函数编写:

(ceshi/views.py文件)

在这里插入图片描述

(2)编写模板文件:

此时在模板中使用自定义标签时不携带参数,因为参数已经在上下文中获取!
(templates/ceshi/test1.html文件)

在这里插入图片描述

(3)自定义标签实现:

(ceshi/templatetags/common_extras.py文件)

在这里插入图片描述

第三部分

自定义标签高级操作!

自定义包含标签!
包含标签的功能——是可以通过渲染另外一个模板来显示一些数据!

例如很多地方都可能会用到下面这几行代码(可能在这个for循环中包括了好几十行代码),除了choices这个变量不一样之外,其他的都是格式都一样时,那么我们就可以把这部分代码封装在一个包含标签中!

1
2
3
4
5
<ul>
    {% for i in choices %}
        <li>{{ i }}</li>
    {% endfor %}
</ul>

(其实就类似封装函数,将一个大量的重复性的工作进行封装,使用的时候直接调用即可!)

(1)定义一个test01.html文件来存放功能代码:

(templates/ceshi/test01.html文件)

1
2
3
4
5
<ul>
    {% for i in choices %}
        <li>{{ i }}</li>
    {% endfor %}
</ul>

(2)定义包含标签:

  • 装饰器传递的参数是显示数据的模板文件路径!
  • 最后return返回的是个字典对象。

在这里插入图片描述

(3)使用:

在这里插入图片描述

(4)效果展示:

在这里插入图片描述

到此这篇关于Django零基础入门之自定义标签及模板中的使用的文章就介绍到这了,更多相关Django自定义标签内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

蓄力AI

微信公众号搜索 “ 脚本之家 ” ,选择关注

程序猿的那些事、送书等活动等着你

原文链接:https://gu-han-zhe.blog.csdn.net/article/details/119965808

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!

相关文章

  • Python dateutil库简化日期时间处理利器使用场景实践

    Python dateutil库简化日期时间处理利器使用场景实践

    在Python中,处理日期和时间是常见的任务之一,dateutil库是Python标准库中datetime模块的扩展,提供了许多方便的工具和函数,简化了日期和时间的操作
    2023-12-12
  • Python完全识别验证码自动登录实例详解

    Python完全识别验证码自动登录实例详解

    今天小编就为大家分享一篇Python完全识别验证码自动登录实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • python爬虫 模拟登录人人网过程解析

    python爬虫 模拟登录人人网过程解析

    这篇文章主要介绍了python爬虫 模拟登录人人网过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python+opencv实现车道线检测

    python+opencv实现车道线检测

    这篇文章主要为大家详细介绍了python+opencv实现车道线检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • 详解OpenCV和PIL读取和显示图像的差异

    详解OpenCV和PIL读取和显示图像的差异

    这篇文章主要介绍了OpenCV和PIL读取和显示图像的差异,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • django解决跨域请求的问题

    django解决跨域请求的问题

    这篇文章主要介绍了django解决跨域请求的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • python爬虫scrapy框架的梨视频案例解析

    python爬虫scrapy框架的梨视频案例解析

    这篇文章主要介绍了python爬虫scrapy框架的梨视频案例解析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • python实现局部图像放大

    python实现局部图像放大

    这篇文章主要介绍了python实现局部图像放大,画中画形式展示,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Python安装Scrapy库的常见报错解决

    Python安装Scrapy库的常见报错解决

    本文主要介绍了Python安装Scrapy库的常见报错解决,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • python通过字典dict判断指定键值是否存在的方法

    python通过字典dict判断指定键值是否存在的方法

    这篇文章主要介绍了python通过字典dict判断指定键值是否存在的方法,实例分析了Python中使用has_key及in判断指定键值是否存在的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03

最新评论