当前位置:网站首页 > 技术博客 > 正文

django框架中的模板是什么意思



Django中的模板是用来渲染HTML页面的工具。

基本特点:

 
  

在工程中创建模板目录,接着在配置文件中修改配置项的值,指定模板目录位置。

 
  

在目录中新建一个模板文件,如。在模板中,使用语法访问变量。

 
  

通过(模板文件在模板目录中的相对路径) 找到返回模板对象

使用进行渲染模板,然后返回渲染后的值

 
  

或者使用Django提供的render函数简写,

 
  

在URLconf中定义一个URL模式,将URL映射到视图函数

 
  

访问URL,即可看到渲染的模板页面 在这里插入图片描述

Django的模板语法是一种简单且易于学习的语言,它使用一些特殊的标记和标签来创建动态HTML页面。

在模板中使用双花括号来访问变量。当模板渲染时,它会将变量替换为其对应的值。

变量名必须由字母、数字、下划线(不能以下划线开头)和点组成。

 
  

注释内容不会显示在最终生成的HTML中。注释可用于在模板中添加说明或注释。

单行注释

 
  

多行注释使用comment标签

 
  

for循环用于在模板中迭代数据,并将数据渲染到模板中。for循环使用{% %}括起来并包含一个嵌套的{{ }}变量。

 
  

if语句用于在模板中测试条件,并根据条件显示特定内容。if语句使用{% %}括起来。

 
  
 
  

运算符左右两侧不能紧挨变量或常量,必须有空格。 1.比较运算符

 
  

2.布尔运算符

 
  

过滤器用于修改变量的值,以便在渲染时呈现。它们以管道符号分隔,并作为变量的后缀。

过滤器用于进行计算、转换操作,可以使用在变量、标签中。如果过滤器需要参数,则使用冒号传递参数。

模板语法:

 
  

基本使用:

显示大写的 my_var 值

 
  

过滤管道可以被套接 ,即:一个过滤器管道的输出又可以作为下一个管道的输入

将第一个元素并将其转化为大写

 
  

有些过滤器有参数。 过滤器的参数跟随冒号之后并且总是以双引号包含

显示变量my_var的前30个词

 
  

其他过滤器:

lower : 大写转换小写

upper : 小写转换大写

title : 可以将字符串中首字母大写

safe : 禁用转义,告诉模板这个变量是安全的,可以解释执行

length : 长度,返回字符串包含字符的个数,或列表、元组、字典的元素个数。

 
  

default : 默认值,可以为变量指定一个默认值,以便在变量未定义时显示。

 
  

date : 日期,可以将日期对象解析为时间格式。可以设置各种格式, 常用的格式化字符如下:

 
  
 
  

slice : 使用 slice 过滤器可以获取序列(列表,元组等)的一个子序列

 
  

join : 使用 join 过滤器可以将列表中的每个元素连接成一个字符串。

 
  

继承和区块用于在不同的模板之间共享代码和结构。基本的继承语法使用{% extends %},而区块语法使用{% block %}和{% endblock %}。

父模板

如果发现在多个模板中某些内容相同,那么这些内容就可以定义到父模板中。

使用标签block进行定义,用于在父模板中预留区域,留给子模板填充差异性的内容。 为了可读性,建议给endblock标签写上名字,名字不能相同。父模板中也可以使用上下文中传递过来的数据。

 
  

子模板

子模板使用标签extends,写在子模板文件的第一行。子模版不用填充父模版中的所有预留区域,如果子模版没有填充,则使用父模版定义的默认值。

 
  

Jinja2是一个基于Python的、功能强大的Web模板引擎,其提供了许多有用的功能,如继承、条件渲染、迭代、宏、自动转义以及过滤器等。

django默认模板引擎功能不齐全,速度慢,jinja2宣称比django默认模板引擎快10-20倍。Django也支持jinja2。

 
  

在项目中创建 jinja2_env.py模板引擎环境配置文件

 
  

在settings.py文件中配置Jinja2模板引擎,接着指定Jinja2模板引擎环境

 
  

定义一个视图

 
  

Jinja2模板的模板语法与Django自带的模板使用语法类似。

 
  

在这里插入图片描述

Jinja2提供了大量的过滤器来处理和转换模板变量

safe过滤器可以标记内容是安全的,即内容不应被转义或修改。

 
  

capitalize过滤器可以将文本的第一个字符大写。

 
  

lower过滤器可以将文本全部转换为小写。

 
  

upper过滤器可以将文本全部转换为大写。

 
  

title过滤器可以将单词的首字母转换为大写,而其他字符转换为小写。

 
  

truncate过滤器可以将文本截断为指定长度,并在末尾添加省略号。

 
  

escape过滤器可以实现HTML、XML和URL的转义。

 
  

join过滤器可以将列表中的元素连接起来。

 
  

default过滤器可以在值为空或不存在时提供一个默认值,避免出现模板错误。

 
  

dictsort过滤器可以按字典顺序排序列表中的字典,也可以反转顺序。

 
  

Jinja2提供了一些内建的过滤器,同时也可以自定义过滤器

在jinja2_env.py文件中自定义过滤器

 
  

注释使用django原模板的admin应用及路由,否则将出现如下异常:

 
  
 
  
 
  

使用过滤器

 
  

在这里插入图片描述

  • 上一篇: 表分区与分区表
  • 下一篇: linux如何配dns
  • 版权声明


    相关文章:

  • 表分区与分区表2025-10-14 08:30:03
  • $ajax请求2025-10-14 08:30:03
  • 装饰模式主要包括哪些角色2025-10-14 08:30:03
  • css设计字体2025-10-14 08:30:03
  • 基于java的宿舍管理系统2025-10-14 08:30:03
  • linux如何配dns2025-10-14 08:30:03
  • 成员变量和局部变量作用范围2025-10-14 08:30:03
  • linux系统中fork函数的作用2025-10-14 08:30:03
  • java操作zip2025-10-14 08:30:03
  • linux cpu压力测试工具2025-10-14 08:30:03