django入门 03 模板语法
变量值从views.py传入html
- 基本语法
{{ abc }}
变量abc外,用双大括号包裹{% for item in abc %}
语句外,用大括号+百分号包裹
1. 传递字符串
- views.py中,def内
注意views.py外部变量(str1)不需要引号包裹,*.html内部变量(strHtml)需要引号包裹
def index(request):
str1 = "someValue"
return render(request, 'index.html', {"strHtml1": str})
- index.html中,<body>内
<div>{{ strHtml1 }}<div>
2. 传递列表
- views.py中,def内
def index(request):
list1 = ["someValue1", "someValue2","someValue3"]
return render(request, 'index.html', {"listHtml1": list1})
- index.html中,<body>内
<div>
{% for item in listHtml1 %}
{{ item }}
{% endfor %}
<div>{{ listHtml1.0 }}</div>
<div>{{ listHtml1.1 }}</div>
<div>{{ listHtml1.2 }}</div>
</div>
- 效果

3. 传递字典
- views.py中,def内
def index(request):
dict1 = {"key1": "someValue1", "key2": "someValue2", "key3": "someValue3"}
return render(request, 'index.html', {"dictHtml1": dict1})
- index.html中,<body>内
<div>
{% for k in dictHtml1.keys %}
{{ k }}
{% endfor %} <br><br><br>
{% for v in dictHtml1.values %}
{{ v }}
{% endfor %} <br><br><br>
{% for k,v in dictHtml1.items %}
<div>{{ k }}={{ v }}</div>
{% endfor %} <br><br><br>
<div>{{ dictHtml1.key1 }}</div>
<div>{{ dictHtml1.key2 }}</div>
<div>{{ dictHtml1.key3 }}</div>
</div>
- 效果
4. 传递列表中的字典
- views.py中,def内
def index(request):
list_info = [
{"name": "zhang", "age": 14, "province": "hunan"},
{"name": "li", "age": 15, "province": "tianjin"},
{"name": "tian", "age": 16, "province": "shanghai"},
]
return render(request, "index.html", {"listHtml1": list_info})
- index.html中,<body>内
<div>{{ listHtml1.1 }}</div>
<div>{{ listHtml1.1.name }}</div>
<div>{{ listHtml1.1.age }}</div><br>
{% for item in listHtml1 %}
<div>{{ item.name }} : {{ item.age }} : {{ item.province }}</div>
{% endfor %} <br>
<ul>
{% for item in listHtml1 %}
<li> {{ item.name }} : {{ item.age }} : {{ item.province }} </li>
{% endfor %}
</ul> <br>
- 效果

- 附加知识:django html条件语句
{% if strHtml1 == "abc" %}
……
{% elif strHtml1 == "def" %}
……
{% else %}
……
{% endif %}
总结
- {{ }}、{% %} 这些替换字符串,会被django在渲染html时替换,因而不会被终端用户看见
- mosh(一个老外)的经验,尽量在views.py里写条件语句,写在html里会造成代码界面混乱
来源:BV1NL41157 武沛齐《2022 B站最详细django3教程(django从入门到实践)》P9
django入门 03 模板语法的更多相关文章
- Django框架之模板语法【转载】
Django框架之模板语法 一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 一.模板语法之变量:语法为 {{ }}: 在 Django ...
- Django框架之模板语法(重要!)
一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 1.模板语法之变量:语法为 {{ }}: 在 Django 模板中遍历复杂数据结构的关键 ...
- vue简介、入门、模板语法
在菜鸟教程上面学习的vue.js.同时结合vue中文文档网站,便于自己记录. vueAPI网站:API 1. 简介 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框 ...
- django入门之模板的用法
1.为什么要使用模板? 看下以前的代码 #-*- coding:utf-8 -*- from django.shortcuts import render from django.http impor ...
- Django学习笔记(3)——表单,测试和模板语法的学习
一,表单form 为了接收用户的投票选择,我们需要在前段页面显示一个投票界面,让我们重写之前的polls/detail.html文件,代码如下: <h1>{{ question.quest ...
- Django 03 模板路径、模板变量、常用的过滤器
Django 03 模板路径.模板变量.常用的过滤器 一.模板路径 #1.在每个app下面添加一个templates文件 #2.在项目views.py里面第33行INSTALLED_APPS里面添加上 ...
- Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)
前言:当我们想在页面上给客户端返回一个当前时间,一些初学者可能会很自然的想到用占位符,字符串拼接来达到我们想要的效果,但是这样做会有一个问题,HTML被直接硬编码在 Python代码之中. 1 2 3 ...
- Django(四)框架之第三篇模板语法
https://www.cnblogs.com/yuanchenqi/articles/6083427.htm https://www.cnblogs.com/haiyan123/p/7725568. ...
- django模板语法
Django 模板语法 Django 模板语法 一.模板 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法 模板语法变量:{{ }}在Django模板中遍历复杂 ...
随机推荐
- Null和空值对于avg计算时产生的影响以及处理
为什么要关注这一块呢:1.面试中可能会有涉及 2.工作中真的也可能会用,既然有可能我也用过,就拿出来跟大家分享一下,上一篇的博文,数据已准备好就不做数据准备的介绍了. step1:select * f ...
- 替代联阳IT6564方案|CS5262替代IT6564|设计DP转HDMI+VGA扩展坞方案
联阳IT6564:带嵌入式MCU的单芯片4通道DisplayPort1.2到HDMI2.0/VGA转换器 联阳IT6564是一种高性能的单芯片显示端口到HDMI和VGA转换器.IT6564FN结合Di ...
- IT6516功能兼容芯片|DP转VGA方案|CS5202替代兼容IT6516
台湾联阳T6516是一种高性能的DP显示端口到VGA转换器方案芯片.IT6516结合DisplayPort接收器和三重DAC,通过转换功能支持DisplayPort输入和VGA输出.内置Display ...
- 使用 JavaScript 的 HTML 页面混合、JavaScript 文件引用和 HTML 代码嵌入 3 种方式在 HTML 页面上打印出“点击我进入到百度首页”的超链接
查看本章节 查看作业目录 需求说明: 使用 JavaScript 的 HTML 页面混合.JavaScript 文件引用和 HTML 代码嵌入 3 种方式在 HTML 页面上打印出"点击我进 ...
- 《手把手教你》系列技巧篇(五十三)-java+ selenium自动化测试-上传文件-上篇(详细教程)
1.简介 在实际工作中,我们进行web自动化的时候,文件上传是很常见的操作,例如上传用户头像,上传身份证信息等.所以宏哥打算按上传文件的分类对其进行一下讲解和分享. 2.为什么selenium没有提供 ...
- linux rm 删除命令
2022-01-04 1. 命令简介 Linux rm(英文全拼:remove)命令用于删除一个文件或者目录. 2. 语法及参数 2.1 语法 rm [options] name... 2.2 参数 ...
- spring boot 使用 AOP 的正确姿势 --- 心得
1.前言 向spring boot转型,所有的配置基本上是用注解完成 ,以前使用spring MVC 需要写一大堆xml文件来配置. 基本上没什么变化,但是有些地方需要注意: 环绕通知不要使用异常捕获 ...
- spring cloud --- config 配置中心 [本地、git获取配置文件]
spring boot 1.5.9.RELEASE spring cloud Dalston.SR1 1.前言 spring cloud config 配置中心是什么? 为了统一管理配 ...
- 第10组 Beta冲刺 (2/5)
1.1基本情况 ·队名:今晚不睡觉 ·组长博客:https://www.cnblogs.com/cpandbb/p/14015412.html ·作业博客:https://edu.cnblogs.co ...
- Linux上天之路(六)之Linux文件管理
文件与文件夹的操作 1) 新建 2)改名 3)查看 4)删除 5)拷贝 6)移动 1. 文件的操作 文件的新建:touch filename 文件的改名:mv 文件的查看:ls 文件内容的查看:cat ...