如何理解Django4.1_template中的变量和过滤器
admin
2023-07-16 15:03:59
0次

一.简述
在现在的web实际开发中,为了更加规范的编码及方便后期的项目规划,我们要求前后端分离,前端更进一步要求布局(HTML)、样式(CSS)、行为(JS)分离。在django中,我们把template分离出来作为一个独立的模块来处理HTML。本章节主要讲解django中的template模块的使用。
二.模板语法
模板组成:HTML+逻辑代码
三.模板之逻辑代码
1.模板渲染的原理
两个概念:
template:模板
context:上下文
渲染原理(过程):
A.Django先通过Template生成一个实例化template对象;
B.Diango再通过Context生成一个实例化context对象;
C.Djangi通过template实例调用渲染方法(例如:render())来渲染生成结果;
如图:
如何理解Django4.1_template中的变量和过滤器
代码块如下:

from django.template import Template,Context
template = Template("welcome to {{name}}.")
context = Context({'name':'浙江'})
template.render(context)
'welcome to 浙江.'

注:以上的过程是在django内部实现的,比较复杂,所以我们直接使用django封装好的方法实现该效果即可,即render(request,’template对象文件’,data)或render(request,’template对象文件’,local())
同一个模板对象可以重复使用。
2.模板之变量
2.1格式:{{varname}}
在HTML中使用双引号包裹变量名,再通过view中将变量对应的值传过来(传值有两种方式:1.{key:value};2.locals())。
实例代码如下:
如何理解Django4.1_template中的变量和过滤器
如何理解Django4.1_template中的变量和过滤器
如何理解Django4.1_template中的变量和过滤器
2.2变量的类型及变量深度查询
变量可以是字符串、字典、列表、元组、对象等等。
如图:
如何理解Django4.1_template中的变量和过滤器

如何理解Django4.1_template中的变量和过滤器
页面效果图:
如何理解Django4.1_template中的变量和过滤器
注:在template中使用的均是深度查询,即只能通过符号.(点)进行下一级查询且所有的序列数据类型均能使用索引正常查询但不能使用方括号的格式,只能使用var.index的格式,不能使用var[index]或dic[key]的格式。
2.3
3.模板之过滤器
注:该部分图片来自网络(如有侵权,联系删除)
如何理解Django4.1_template中的变量和过滤器
如何理解Django4.1_template中的变量和过滤器
如何理解Django4.1_template中的变量和过滤器
如何理解Django4.1_template中的变量和过滤器
如何理解Django4.1_template中的变量和过滤器

4.重点:自定义过滤器filter
上面给去了一些常用的过滤器,也是django给我们提供好的方法,但是如果需要某些特定功能的函数呢?而django只是提供了公用的方法,此时我们可以使用django的filter的自定义方法。
1.首先需要使用的app中创建templatetags模块(必须要有且为Package文件类型)
2.在templatetags模块中新建任意.py文件,如:mytags.py
3.在py文件中自定义相应的filter函数代码,如下所示:

from django import template
from django.utils.safestring import mark_safe
register = template.Library()       #register的名字是固定的,不可改变

#自定义一个multi函数
@register.filter
def multi(x,y):         #自定义过滤器函数
    return x*y

#自定义一个multi函数
@register.simple_tag
def tag_multi(x,y,z):       #自定义标签函数
    return x*y*z

4.在要使用自定义的filter函数的HTML文件中导入之前创建的mytags.py文件,即:{% load mytags %}

{% load mytags %}



    
    myfilter


    

{{ person.name }}的年龄为:{{ person.age}}

    

{{ person.name }}的年龄*10为:{{ person.age|multi:10 }}

5.在该HTML文件中使用自定义filter函数,如下:

{% load mytags %}



    
    myfilter


    

{{ person.name }}的年龄为:{{ person.age}}

    

{{ person.name }}的年龄*10为:{{ person.age|multi:10 }}

       {# 使用自定义的filter函数 #}

6.注意:a要在setting中的INSTALLED_APPS配置当前的app,如下图,不然django会无法找到自定义的mytags.py文件。b.新建mytags.py文件后重启该项目;c.filter函数只能接收2个参数(大括号|前面一个为此处的第一个参数)。
如何理解Django4.1_template中的变量和过滤器

7.最终在浏览器上显示效果如图所示:
如何理解Django4.1_template中的变量和过滤器

8.总结图:
如何理解Django4.1_template中的变量和过滤器

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...