过滤器 语法结构 {{ 数据对象|过滤器名称:参数 }} 过滤器最多只能额外传输一个参数 常见过滤器 标签 注意事项 在django模板语法中写标签的时候,只需要写关键字然后tab键就会自动补
{{ 数据对象|过滤器名称:参数 }}
过滤器最多只能额外传输一个参数
常见过滤器
{% if 条件1 %}
<p>你好啊</p>
{% elif 条件2 %}
<p>他好呀</p>
{% else %}
<p>大家好</p>
{% endif %}
提供了forloop关键字
{% for i in l1 %}
<p>{{ i }}</p>
{% endfor %}
{% for i in l1 %}
{% if forloop.first %}
<p>这是第一次循环</p>
{% elif forloop.last %}
<p>这是最后一次循环</p>
{% else %}
<p>中间循环</p>
{% endif %}
{% empty %}
<p>for循环对象为空 自动执行</p>
{% endfor %}
from django import template register = template.Library()
@register.filter(is_safe=True) def index(a, b): return a + b {% load mytag %} {{ n1|index:666 }}View Code 自定义简单标签
可以接收任意的参数
@register.simple_tag(name='my_tag') def func1(a, b, c, d): return a + b + c + d {% my_tag 1 2 3 4 %} # 参数之间空格隔开即可自定义inclusion_tag
@register.inclusion_tag('left.html') def func2(n): l1 = [] for i in range(1, n + 1): l1.append(f'第{i}页') return locals() {% func2 10 %} # 传入的参数是几就会打印几页
<ul> {% for foo in l1 %} <li>{{ foo }}</li> {% endfor %} </ul>
该方法需要先作用于一个局部html页面,之后将渲染的结果放到调用的位置
模板导入 概念类似于将html页面上的局部页面做成模块的形式,哪个地方想要直接导入即可展示
有一个非常好看的获取用户数据的页面,需要在网站的多个页面上使用
- 策略1:拷贝多份即可
- 策略2:模板的导入
{% include 'menu.html' %}
menu.html只能是一个局部页面,只能写局部代码
HTML的注释语法<!---->
django模板语法的注释{# #}
注意事项HTML的注释可以在前端浏览器页面上直接查看到,模板语法的注释只能在后端查看,前端浏览器查看不了
{% block content %} <h1>主页内容</h1> {% endblock %}
{% extends 'home.html' %}
{% block content %} <h1>登录内容</h1> {% endblock %}
{{ block.super }}