小工具知识网

当前位置: 首页 > 行业知识 > Django——模板

行业知识

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 }}#}
  • {{ forloop.counter0 }}:{{ i }}
  • {% endfor %}

    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集群部署教程