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),
]

最终启动结果显示

原文地址:https://www.cnblogs.com/mjiu/p/9763776.html