Python - Django - 模板语言之自定义过滤器

自定义过滤器的文件:

在 app01 下新建一个 templatetags 的文件夹,然后创建 myfilter.py 文件

这个 templatetags 名字是固定的,myfilter 是自己起的

myfilter.py:

from django import template
register = template.Library()

@register.filter(name="sleep")  # name 是 html 中的过滤器名
def sleep(arg):
    return "%s is sleep" %arg

views.py:

from django.shortcuts import render, redirect, HttpResponse
from app01 import models

# Filter 测试
def filter_test(request):
    name = "Jack"
    return render(request, "filter_test.html", {"name": name})

filter_test.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Filter 测试</title>
</head>
<body>
<!-- 这里需要导入自定义的 filter -->
{% load myfilter %}
{{ name|sleep }}

</body>
</html>

运行结果:

定义含参数的 filter:

myfilter.py:

from django import template
register = template.Library()

@register.filter(name="sleep")
def sleep(arg):
    return "%s is sleep" %arg

@register.filter(name="eat")
def eat(arg, arg1):
    return "%s is eating %s" %(arg, arg1)

filter_test.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Filter 测试</title>
</head>
<body>

{% load myfilter %}
{{ name|sleep }}
<br>
{{ name|eat:"meat" }}

</body>
</html>

运行结果:

原文地址:https://www.cnblogs.com/sch01ar/p/11252815.html

时间: 2024-10-06 20:56:07

Python - Django - 模板语言之自定义过滤器的相关文章

Django模板语言-Filters(过滤器)

Filters(过滤器) 在Django的模板语言中,通过使用 过滤器 来改变变量的显示. 过滤器的语法: {{ value|filter_name:参数 }} 使用管道符"|"来应用过滤器. 例如:{{ name|lower }}会将name变量应用lower过滤器之后再显示它的值.lower在这里的作用是将文本全都变成小写. 注意事项: 过滤器支持“链式”操作.即一个过滤器的输出作为另一个过滤器的输入. 过滤器可以接受参数,例如:{{ sss|truncatewords:30 }}

django模板中的自定义过滤器

(1)在APP下创建templatetags文件夹,与Models.py.views.py等同级,templatetags文件夹下添加__init__.py文件,可为空,再添加一个模块文件,例如cpt_filters.py,目录结构如下 myapp/ __init__.py models.py templatetags/ __init__.py cpt_filters.py views.py admin.py appa.py 目录下添加__init__.py文件可让python知道这里是pyth

Python学习(三十七)—— 模板语言之自定义filter和中间件

一.模板语言之自定义filter 自定义filter文件存放位置 模板中自定义函数 - 在已注册的app中创建一个名字叫 templatetags 文件夹 - 任意创建一个py文件 - 创建名字交 register 的Library类的对象 - 定义函数 from django.template import Library register = Library() # 调用示例:{{ "a1"|meikai:"n1,n2"}} # 参数最多2 # 可以做if的条件

Django模板语言

常用语法 {{  }}和{% %} 变量相关的用{{}} , 逻辑相关的用{% %} 变量 在Django的模板语言中按此语法使用:{{ 变量名 }}. 当模版引擎遇到一个变量,它将计算这个变量,然后用结果替换掉它本身. 变量 的命名包括任何字母数字以及下划线 ("_")的组合(不提倡数字开头). 变量名称中 不能有空格或标点符号. 点(.)在模板语言中有特殊的含义.当模版系统遇到点("."),它将以这样的顺序 查询: 字典查询(Dictionary lookup)

Django模板语言小记

1.blog.views.py  # Create your views here. from django.template import loader,Context from django.http import HttpResponse from blog.models import BlogPost def archive(request):     posts = BlogPost.objects.all()     t = loader.get_template('archive.

django 模板语言

Django的模板语言的目的是取得力量和易用性之间的平衡,与其他的模板语言相比,django模板语言显得更简单,更专一, django模板系统由模板,变量,过滤器,标签,注释等主要部分组成 模板 一个模板是一个简单的文本文件,它可以生成任何基于文本的格式,html,csv,xml等等 模板里面包含变量,过滤器,标签和注释,下面是一个简单的模板文件 {% extends "base_generic.html" %} {% block title %}{{ section.title }}

三、Python Django模板

Python Django模板 衔接上一篇 一.创建一个模板文件 # cat blog/template/index.html <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0.5 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt

四、Python Django模板变量

Python Django模板变量 一.传递字符串变量 # cat blog/template/index.html <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UT

五、Python Django模板标签

Python Django模板标签 一.if.for标签 # cat blog/views.py from django.shortcuts import render_to_response def index(req): user = {'name':'loyu','age':23,'sex':'male'} book_list = ['python','java','php','web'] return render_to_response('index.html',{'title':'L