行业知识
Django——模板
2026-11-14 13:08:43
来源:互联网转载
Django——模板
Django ���供一种动态生成 HTML 页面 —— 模板
()1、模板语言
模板语言(DTL): 变量 , 注释 , 标签 , 过滤器 , 模板继承
1、变量
{# 这种是Django中模板语言的注释 #} 变量
() 姓名:{{ name }}
年龄:{{ age }}
性别:{{ gender }}
调用函数
{{ demo }}
调用类
{{ Demo.name }}
{{ Demo.eat }}
调用对象
{{ ek.name }}
{{ ek.eat }}
列表
{{ ll }}
通过下标获取列表中的数据
{{ ll.1 }}
def template_view(request): name = '阿宸' age = 17 gender = '男' # 可以将函数,类传递到 html 模板中 def demo(): return '你好呀' class Demo: def __init__(self): self.name = '尔康' def eat(self): return "等下一起去吃KFC" ek = Demo() ll = ['叶晓春','樱岛麻衣','境界'] return render(request , 'template_demo.html' , locals())
2、过滤器
过滤器的格式:{{ 变量名|过滤器名称:数据}}
default 过滤器
当变量为空或者为 False 的时候响应为设置的默认值
{{ sex | default:'靓仔' }}
{{ age | default:'18' }}length 过滤器
返回变量的长度
{{ name | length }}
{{ ll | length }}safe 过滤器
可以将带有 html 标签的字符串进行格式转换
{{ name | safe }}
{{ html_str }} {{ html_str | safe }}rendom 过滤器
在指定的列表中随机获取一个数据
{{ ll | random }}
自定义过滤器
在应用下创建 templatetags 包 , 在这个包内创建一个 py 文件
from django import templateregister = template.Library()# 自定义过滤器# name 是定义过滤器名称的@register.filter(name='max_number')def num(num_1 , num_2): return max(num_1 , num_2)
自定义过滤器
{# 导入自定义过滤器的模块 #} {% load mytag %} {{ age | max_number:27 }}
3、流程控制
if 判断
{% if 判断条件 %}……{% elif 判断条件 %}……{% else %}……{% endif %} for 循环
{% for 变量名 in 可迭代对象 %}……{% endfor %} if 判断
{% if age > 18 %} {{ name }}{% else %} {{ gender }}{% endif %}for 循环
{% for i in ll %} {# forloop 循环信息 #}{# {{ forloop }}#}
4、include 标签
include 标签用户模板的包含
模板A
作者:{{ name }}
籍贯:{{ add }}
联系地址:{{ tel_addr }}
{# {% include 'include_demo.html' %} #} {# {% include 'include_demo.html' with 导入模板参数 %} #} {% include 'include_demo.html' with name='ac' add='广东' tel_addr='广州天河花城大道'%} 5、自定义 inclusion_tag
制作局部的 html 标签
局部标签中的内容需要通过模板引擎来制作
# 自定义 inclusion_tag# inclusion_tag 制定局部标签在哪一个文件中@register.inclusion_tag('tag.html')def tag_demo(): ls = ['?:','境界','樱岛麻衣','。。','叶晓春'] return locals() - {% for l in ls %}
- {{ l }} {% endfor %}
{% load mytag %} {# 使用自定义的局部标签 , 标签的名称就是自定义标签的函数名 #} {% tag_demo %} 6、模板继承
子模板继承语法: {% extends '父模板文件名' %}
重写模板:{% block 名称 %}{% endblock 名称 %} 被这个标签包含的 , 子模板可以重写
阿宸好帅
{% block content %}等下那个一起去吃KFC
尔康、樱岛麻衣
{% endblock content %}{% block neiron %}{% endblock neiron %}
{# 继承模板页面 #}{% extends 'f_extend.html' %}{# 重写父模板中的内容 #}{% block content %} 樱岛麻衣:我还有倒三角
{% endblock content %}{% block neiron %} 境界:看回放辣眼睛
{% endblock %}
上一篇:王者荣耀服务器怎么升?
下一篇:hadoop集群部署教程