Django资料之模板语言

本文详细介绍了Django框架中的模板系统,包括如何在视图函数中返回不同类型的变量到模板,如单个变量、数组和字典,以及如何在模板中获取这些变量。同时,深入探讨了模板继承的概念,包括extend和include两种方式,展示了如何通过block关键字重新定义父模板中的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

◆ 视图返回信息:

render(request, "模板的文件的路径", {'obj': 1234, 'k1': [1,2,3,4],"k2": {'name': '张扬','age': 73}})

◆ 语言格式:

1、返回单个变量

视图函数:
k1 = "abc"
return render(request,"index.html",{'k1':k1})

页面获取:
<h1> {{ obj }} </h1>   #返回值abc

2、返回数组

视图函数:
k1 = ["a","b","c"]
return render(request,"index.html",{'k1':k1})

页面获取:
(1)获取单个值
<h1> {{ k1.1 }} </h1>    #返回值b
(2)循环获取
{% for i in k1 %}
	<p> {{ i }} </p>
{% endfor %}

3、返回字典

视图函数:
k1 = {"a":"aaa","b":"bbb","c":"ccc"}
return render(request,"index.html",{'k1':k1})

页面获取:
(1)获取单个键的值
<p>{{ k1.a }}</p>    #返回值aaa

(2)获取所有键
{% for row in k1.keys %}
    {{ row }}
{% endfor %}

(3)获取所有值
{% for row in k1.values%}
    {{ row }}
{% endfor %}

(4)获取所有键值对
{% for k,v in k1.items %}
     {{ k }} - {{v}}
{% endfor %}

◆ 模板继承:

1、extend模板继承:

  1. 一个文件中只能继承一个模板
  2. extend继承模板中的所有内容,模板的内容包括:html的head和body
  3. block关键字是定义父模板中哪些内容需要重新,定义block块时,必须给block块命名
  4. 在子模板中,子模板会根据blcok的块名重写父文件中定义的block块部分
  5. 在子文件中如果使用block块名,子文件默认继承父文件中的block中的内容
{#父模板#}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{% block title %} {% endblock %}</title>
    <link rel="stylesheet" href="/static/commons.css" />
    <style>
        .pg-header{
            height: 50px;
            background-color: seashell;
            color: green;
        }
    </style>
    {% block css %} {% endblock %}
</head>
<body>
    <div class="template">母版页</div>
    <div>
    {% block content %}{% endblock %}
    </div>
</body>
</html>

子模板:

{% extends 'master.html' %}

{% block title %}子模板{% endblock %}

{% block content %}
    <h1>子模板</h1>
{% endblock %}

{% block css %}
    <style></style>
{% endblock %}

{% block js %}
    <script></script>
{% endblock %}

2、include模板继承:

  1. include关键字是让子文件的继承局部的内容,父文件只需要写一个公用的模板
  2. include继承的父文件内容只是body中的具体某个或者多个标签。
  3. 在一个文件中可以有多了include,但是只能有一个extend
<!DOCTYPE html>
	<head>
	</head>
	<body>
	    {% include '模板.html' %}
	</body>
</html>
{#include模板#}
<div>include模板继承</div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值