一、字典,列表,类在template模板中的使用

在视图函数中,即views.py中进行传值操作,可通过render方法,进行传值

from django.shortcuts import render

def home(request):
string = u"我在自学堂学习Django,用它来建网站"
return render(request,"index.html",{"string":string})

对应home.html模板应用

使用{{ stirng }}(变量)语句, 表示取string变量

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>{{ string }}</h1>
</body>
</html>

注意string可以是字典、列表、字符串、数字等

def test(request):
string = "hello world"
list_number = [1,2,4,5,6]
dict_string = {"username":"jackyoung","age":15,"weight":"125斤"}
return render(request,'base.html',{"string":string,"list_number":list_number,"dict_string":dict_string})

对应home.html模板

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>这是一个字符串:{{ string }}</h1>
<h1>这是一个列表:{{ list_number }} </h1>
<h1>这是一个字典:{{ dict_string }} </h1>
<ul>
<li>这是字典的值调用:{{ dict_string.username }}</li>
<li>这是字典的值调用:{{ dict_string.age }}</li>
<li>这是字典的值调用:{{ dict_string.weight }}</li>
</ul>
</body>
</html>

二、循环语句使用

def home(request):
TutorialList = ["HTML","CSS","jQuery","Python","Django"]
blank_list = []
return render(request,'home.html',{"tutoriallist":TutorialList,"blank_list":blank_list})

1、{% for ... %}(标签)语句,中for循环,for语法可以按照python语法来编写,使用后需要{% endfor %}结束标记

{% for i in items %}{% endfor %}
<p>for循环的使用</p>
{% for i in tutoriallist %}
{{ i }}<br>
{% endfor %}

2、{% empty %} 使用{% empty %}表示列表是空的会直接执行它下方的语句

{% for j in blank_list %}
<p>{{ j }}</p>
{% empty %}
<p>列表是空的!</p>
{% endfor %}

3、for语句的其他使用

变量 描述
forloop.counter 索引从 1 开始算
forloop.counter0 索引从 0 开始算
forloop.revcounter 索引从最大长度到1
forloop.revcounter0 索引从最大长度到0
forloop.first 当遍历的元素为第一项时为真
forloop.last 当遍历的元素为最后一项时为真
forloop.parentloop 用在嵌套的 for 循环中,获取上一层 for 循环的 forloop

三、判断语句的使用

{% if x is true %}{% endif %}
{% if bool_value is True %}
<p>为真</p>
{% else %}
<p>为假</p>
{% endif %}

四、继承父类模板

{% extends "base.html" %} 语句,会把base.html的内容全部继承到新模板中,在模板中只需要填写该语句即可

五、包含

{% include "header.html" %}语句,会把header.html的内容包含到模板中,只需要该语句,就可以将header.html内容包含到新模板中

六、块Block

{% block content %}Content{% endblock %}语句,把新模板中的内容块,代替掉基础模板中内容块,记住:需要和{% extends "base.html" %}一起使用

例如:

1、基础模板中使用{% block content %}

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
{% block content %} {% endblock %}
</body>
</html>

2、新模板中使用{% block content %}

{% extends "123.html"%}
{% block content %}
<h1>这是4.html页面的内容</h1>
{% endblock %}

(三)Django模板语言的更多相关文章

  1. Django模板语言初识

    一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...

  2. Django模板语言的复用

    一.include标签 由于在项目中,往往会出现多个页面拥有一个或几个相同的页面版块,或是一个页面多个页面版块是相同的,基于这个问题,我们可以采用模板语言复用include标签来帮我们解决,这样就避免 ...

  3. Django 模板语言 路由 视图

    . 模板语言(字符串替换) . 母版和继承 . 什么时候用母版? html页面有重复的代码,把它们提取出来放到一个单独的html文件. (比如:导航条和左侧菜单) . 子页面如何使用母版? {% ex ...

  4. Django模板语言,标签整理

    Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...

  5. Django模板语言(一)

    1,Django模板语言 1.1>基础语法:1.1.1,变量相关:{{ 变量名 }},1.1.2,逻辑相关{% ... %} 在Django模板语言中按此语法使用:{{ 变量名 }},当模板引擎 ...

  6. Django模板语言 标签整理

    Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...

  7. 6月15日 python学习总结 Django模板语言相关内容

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  8. Django模板语言相关内容 Djan

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  9. Django——模板语言相关内容

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  10. django模板语言的注释

    就像HTML或者Python,Django模板语言同样提供代码注释. 注释使用 {# #} : ? 1 {# This is a comment #} 注释的内容不会在模板渲染时输出. 用这种语法的注 ...

随机推荐

  1. laravel 实现微博第三方登陆

    https://blog.csdn.net/a12541254/article/details/79415550 1.安装 composer require socialiteproviders/we ...

  2. Java开发中RMI和webservice区别和应用领域

    Java开发中RMI和webservice区别和应用领域 一.RMI和webservice区别和联系 0. 首先,都是远程调用技术. 1. RMI是在TCP协议上传递可序列化的java对象(使用Str ...

  3. Python--day24--单继承关键字super

    super().  调用父类方法:(super不仅可以在一个类的内部使用,还可以在一个类的外部使用)

  4. nginx+tomcat实现负载均衡(windows环境)

    一.准备工作 nginx1.14 nginx1.14下载链接 tomcat8 tomcat8下载链接 windows系统 二.实现目标 访问http://localhost地址时, 将请求轮询到tom ...

  5. Roslyn 使用 Target 替换占位符方式生成 nuget 打包

    本文告诉大家如何编写在编译过程修改打包文件 在项目文件的相同文件夹可以放一个 nuspec 用来告诉 VisualStudio 如何打包 现在尝试创建一个项目 NearjerbetearDeeyito ...

  6. 被孟加拉题吊打的ACM考试

    https://codeforces.com/gym/101864 题目并不难 B 考虑新加入的线段和之前线段有交的个数 总数-不交的,不交的:右端点在[l,r]左边,左端点在[l,r]右边的. 维护 ...

  7. linux下mysql5.7忘记root密码修改

    朋友最近开始学服务器,mysql密码忘了又不会弄,让我帮忙解决一下.重置或修改mysql的root密码这种事平时很少做,还是得google辅助一下,于是弄完了写篇博客记录一下,方便若干月后又有人遇到这 ...

  8. 理解Servlet

    题记:框架横行,似乎已经忘记JavaWeb最基础Servlet是如何工作的,这也是为什么要写这篇文章. Servlet是Java语言应用到Web的扩展技术,是运行在Web应用服务器上的Java程序.与 ...

  9. Linux 内核总线

    一个总线是处理器和一个或多个设备之间的通道. 为设备模型的目的, 所有的设备都通过 一个总线连接, 甚至当它是一个内部的虚拟的,"平台"总线. 总线可以插入另一个 - 一个 USB ...

  10. substring和substr的区别和使用

    第一反应是都是截取字符串的方法,好像平常使用的时候也没太注意区分这俩,今天看到正好来区分一下 substring(start,[end]) 如果省略end,那么截取的是从指定位置到末尾 var str ...