变量值从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 模板语法的更多相关文章

  1. Django框架之模板语法【转载】

    Django框架之模板语法 一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 一.模板语法之变量:语法为 {{ }}: 在 Django ...

  2. Django框架之模板语法(重要!)

    一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 1.模板语法之变量:语法为 {{ }}: 在 Django 模板中遍历复杂数据结构的关键 ...

  3. vue简介、入门、模板语法

    在菜鸟教程上面学习的vue.js.同时结合vue中文文档网站,便于自己记录. vueAPI网站:API 1. 简介 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框 ...

  4. django入门之模板的用法

    1.为什么要使用模板? 看下以前的代码 #-*- coding:utf-8 -*- from django.shortcuts import render from django.http impor ...

  5. Django学习笔记(3)——表单,测试和模板语法的学习

    一,表单form 为了接收用户的投票选择,我们需要在前段页面显示一个投票界面,让我们重写之前的polls/detail.html文件,代码如下: <h1>{{ question.quest ...

  6. Django 03 模板路径、模板变量、常用的过滤器

    Django 03 模板路径.模板变量.常用的过滤器 一.模板路径 #1.在每个app下面添加一个templates文件 #2.在项目views.py里面第33行INSTALLED_APPS里面添加上 ...

  7. Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)

    前言:当我们想在页面上给客户端返回一个当前时间,一些初学者可能会很自然的想到用占位符,字符串拼接来达到我们想要的效果,但是这样做会有一个问题,HTML被直接硬编码在 Python代码之中. 1 2 3 ...

  8. Django(四)框架之第三篇模板语法

    https://www.cnblogs.com/yuanchenqi/articles/6083427.htm https://www.cnblogs.com/haiyan123/p/7725568. ...

  9. django模板语法

    Django 模板语法 Django 模板语法 一.模板 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法 模板语法变量:{{ }}在Django模板中遍历复杂 ...

随机推荐

  1. 【LeetCode】494. Target Sum 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 动态规划 日期 题目地址:https://leetc ...

  2. '2'>'10'==true? JS是如何进行隐式类型转换的?

    前言 '2'>'10'返回的true,可能很多人都不是很能理解吧? 在js中,当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转 ...

  3. 移动端H5-iPhone安全距离适配

    安全区域? 安全区域指的是一个可视窗口范围,处于安全区域的内容不受圆角(corners).齐刘海(sensor housing).小黑条(Home Indicator)影响,如下图蓝色区域: 也就是说 ...

  4. Certified Adversarial Robustness via Randomized Smoothing

    目录 概 主要内容 定理1 代码 Cohen J., Rosenfeld E., Kolter J. Certified Adversarial Robustness via Randomized S ...

  5. 动态规划题 HDU-1024

    http://acm.hdu.edu.cn/showproblem.php?pid=1024 Now I think you have got an AC in Ignatius.L's " ...

  6. 懂得三境界-使用dubbo时请求超过问题

    引子 刚才下班回家路上,无意中听到大街上放的歌,歌词有这么一句:"毡房外又有驼铃声声响起,我知道那一定不是你".这一句我似乎听懂了歌者的魂牵梦绕和绝望,如果在十年前我大概只能感受出 ...

  7. openmesh - src - trimesh delete and add elements

    openmesh - src - trimesh delete and add elements openmesh 版本 8.1 About 本文主要介绍openmesh的如下接口 add_verte ...

  8. 深入 Laravel 内核之外观模式(门面模式)

    门面模式核心内容: 客户端与子系统的通信通过外观对象进行: 外观对象封装一系列子系统的具体对应方法,对客户端只需暴露一个单一的入口方法: 客户端通过访问外观对象即可调用子系统的基础方法,无需关心子系统 ...

  9. influxdb安装与基本配置

    一.Influxdb下载 本文中使用的环境是centos7.3 wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.6.x86_ ...

  10. DGHV同态库

    DGHV DGHV全同态方案的实现 这是具有压缩公钥的DGHV的全同态加密方案的实现,参考文章: [1] J.S. Coron, D. Naccache and M. Tibouchi, " ...