(三)Django模板语言
一、字典,列表,类在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模板语言的更多相关文章
- Django模板语言初识
一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...
- Django模板语言的复用
一.include标签 由于在项目中,往往会出现多个页面拥有一个或几个相同的页面版块,或是一个页面多个页面版块是相同的,基于这个问题,我们可以采用模板语言复用include标签来帮我们解决,这样就避免 ...
- Django 模板语言 路由 视图
. 模板语言(字符串替换) . 母版和继承 . 什么时候用母版? html页面有重复的代码,把它们提取出来放到一个单独的html文件. (比如:导航条和左侧菜单) . 子页面如何使用母版? {% ex ...
- Django模板语言,标签整理
Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...
- Django模板语言(一)
1,Django模板语言 1.1>基础语法:1.1.1,变量相关:{{ 变量名 }},1.1.2,逻辑相关{% ... %} 在Django模板语言中按此语法使用:{{ 变量名 }},当模板引擎 ...
- Django模板语言 标签整理
Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...
- 6月15日 python学习总结 Django模板语言相关内容
Django模板语言相关内容 Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...
- Django模板语言相关内容 Djan
Django模板语言相关内容 Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...
- Django——模板语言相关内容
Django模板语言相关内容 Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...
- django模板语言的注释
就像HTML或者Python,Django模板语言同样提供代码注释. 注释使用 {# #} : ? 1 {# This is a comment #} 注释的内容不会在模板渲染时输出. 用这种语法的注 ...
随机推荐
- 性能改善后复杂SQL
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-/ ...
- hdu 1532 Drainage Ditches(最大流模板题)
Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 为 Ubuntu 18.04 添加开机自动加载 ntfs分区 功能
注意:Ubuntu终端命令是区分大小写的 1,准备的: ntfs-3g -- 提供ntfs读写支持(一般说来是自带的,若没有,可是使用 sudo apt-get isntall ntfs-3g ...
- lua在C/C++中使用table生成对应键及值
int nTop = lua_gettop(L); // 栈内初始数,假设当前为0 lua_newtable(L); // push table lua_pushstring(L,"Line ...
- Mysql5.5升级到5.7的过程已经踩到的坑
https://blog.csdn.net/u014534986/article/details/79699750 故事是这样子的,我们公司有几台老的mysql版本是5.5的,最近项目做了一些升级增加 ...
- vue v-for循环使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- springboot中各个版本的redis配置问题
今天在springboot中使用数据库,springboot版本为2.0.2.RELEASE,通过pom引入jar包,配置文件application.properties中的redis配置文件报错,提 ...
- 如何读取redis中的key值中的结果
redis的值有5种类型,不同的类型有不同的命令来获取: 字符直接 get key 队列 左端弹出一个元素 LPOP key 哈希 HGET key field 集合 SMEMBERS key 返回 ...
- 2018-2-13-win10-uwp-获取指定的文件-AQS
title author date CreateTime categories win10 uwp 获取指定的文件 AQS lindexi 2018-2-13 17:23:3 +0800 2018-2 ...
- 2018-9-2-WPF-开发自动删除软件
title author date CreateTime categories WPF 开发自动删除软件 lindexi 2018-09-02 14:51:48 +0800 2018-08-09 09 ...