Django(自定义过滤器和自定义标签)

Posted mjiu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django(自定义过滤器和自定义标签)相关的知识,希望对你有一定的参考价值。

  • 模版是一个用django模版语言标记过的python字符串。模版可以包含模版标签和变量。
  • 模版标签是在一个模版里起作用的标记。比如,一个模版标签可以产生控制结构的内容(if或者for),可以获取数据库内容或者访问其它模版标签。
  • 一个标签块被{%%}包围
  • 变量标签被{{}}包围
  • context是一个传递给模版的key-value对。
  • 模版渲染是通过从context获取值来替换模版中变量并执行所有的模版标签。

创建自定义标签目录

首先在app底下创建一个templatetags目录,添加一下两个.py文件

__init__.py 
extra_tags.py
目录结构如下

技术分享图片

 

在 setting 中作为app进行注册
INSTALLED_APPS = [
    django.contrib.admin,
    django.contrib.auth,
    django.contrib.contenttypes,
    django.contrib.sessions,
    django.contrib.messages,
    django.contrib.staticfiles,
    blog,
    mysites.templatetags,#作为app注册

]

在extratags.py 中添加自定义过滤器

from django import template

register = template.Library()

@register.filter(name=cut)  # 过滤器在模板中使用时的name
def myCut(value, arg):  # 把传递过来的参数arg替换为转换后
    return value.replace(arg, 转换后)

编辑试图函数,把value传递给模板文件

def  index(request):
    return render(request, index.html,{value:Hello Small Nine})

添加urls 路由控制

urlpatterns = [
    path(admin/, admin.site.urls),
    path(login/,views.login),
    path(index/,views.index),
]

最终启动结果显示

技术分享图片

技术分享图片

 


以上是关于Django(自定义过滤器和自定义标签)的主要内容,如果未能解决你的问题,请参考以下文章

django自定义模板标签和过滤器

Django—— 模板层:变量过滤器标签自定义标签和过滤器

django 第五课自定义模板过滤器与标签

Django之自定义标签,过滤器,以及inclusion_tag

带有复选框和自定义适配器的 ListView,片段无法正常工作

Django-自定义标签,过滤器