变量值从views.py传入html

  • 基本语法

    • {{ abc }}

      变量abc外,用双大括号包裹

    • {% for item in abc %}

      语句外,用大括号+百分号包裹

1. 传递字符串

  • views.py中,def内

    注意views.py外部变量(str1)不需要引号包裹,*.html内部变量(strHtml)需要引号包裹
  1. def index(request):
  2. str1 = "someValue"
  3. return render(request, 'index.html', {"strHtml1": str})
  • index.html中,<body>内
  1. <div>{{ strHtml1 }}<div>

2. 传递列表

  • views.py中,def内
  1. def index(request):
  2. list1 = ["someValue1", "someValue2","someValue3"]
  3. return render(request, 'index.html', {"listHtml1": list1})
  • index.html中,<body>内
  1. <div>
  2. {% for item in listHtml1 %}
  3. {{ item }}
  4. {% endfor %}
  5. <div>{{ listHtml1.0 }}</div>
  6. <div>{{ listHtml1.1 }}</div>
  7. <div>{{ listHtml1.2 }}</div>
  8. </div>
  • 效果

3. 传递字典

  • views.py中,def内
  1. def index(request):
  2. dict1 = {"key1": "someValue1", "key2": "someValue2", "key3": "someValue3"}
  3. return render(request, 'index.html', {"dictHtml1": dict1})
  • index.html中,<body>内
  1. <div>
  2. {% for k in dictHtml1.keys %}
  3. {{ k }}
  4. {% endfor %} <br><br><br>
  5. {% for v in dictHtml1.values %}
  6. {{ v }}
  7. {% endfor %} <br><br><br>
  8. {% for k,v in dictHtml1.items %}
  9. <div>{{ k }}={{ v }}</div>
  10. {% endfor %} <br><br><br>
  11. <div>{{ dictHtml1.key1 }}</div>
  12. <div>{{ dictHtml1.key2 }}</div>
  13. <div>{{ dictHtml1.key3 }}</div>
  14. </div>
  • 效果

4. 传递列表中的字典

  • views.py中,def内
  1. def index(request):
  2. list_info = [
  3. {"name": "zhang", "age": 14, "province": "hunan"},
  4. {"name": "li", "age": 15, "province": "tianjin"},
  5. {"name": "tian", "age": 16, "province": "shanghai"},
  6. ]
  7. return render(request, "index.html", {"listHtml1": list_info})
  • index.html中,<body>内
  1. <div>{{ listHtml1.1 }}</div>
  2. <div>{{ listHtml1.1.name }}</div>
  3. <div>{{ listHtml1.1.age }}</div><br>
  4. {% for item in listHtml1 %}
  5. <div>{{ item.name }} : {{ item.age }} : {{ item.province }}</div>
  6. {% endfor %} <br>
  7. <ul>
  8. {% for item in listHtml1 %}
  9. <li> {{ item.name }} : {{ item.age }} : {{ item.province }} </li>
  10. {% endfor %}
  11. </ul> <br>
  • 效果

  • 附加知识:django html条件语句
  1. {% if strHtml1 == "abc" %}
  2. ……
  3. {% elif strHtml1 == "def" %}
  4. ……
  5. {% else %}
  6. ……
  7. {% 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. 菜鸟物流的运输网络(计蒜客复赛F)

    菜鸟物流有自己的运输网络,网络中包含 nn 个城市物流集散中心,和 mm 对城市之间的运输线路(线路是双向的).菜鸟物流允许淘宝卖家自行确定包裹的运输路径,但只有一条限制规则:不允许经过重复的城市.淘 ...

  2. 《python-美藏篇》1.可迭代、迭代器与生成器

    首先区分可迭代对象(Iterable).迭代器(Iterator) 可迭代对象:包含__iter__方法的对象为可迭代对象,如List.Tuple.Dictionary 迭代器:包含__iter__. ...

  3. Spring练习,使用注解的方式,完成模拟用户的正常登录。要求如下: 使用注解方式开发模拟用户的正常登录。

    相关 知识 >>> 相关 练习 >>> 实现要求: 在该实践案例中,使用注解的方式,完成模拟用户的正常登录. 要求如下: 使用注解方式开发模拟用户的正常登录. 实现 ...

  4. Java初学者作业——编写Java程序,实现判断所输入字符的类型(数字、小写字母、大写字母或其他字符)

    返回本章节 返回作业目录 需求说明: 编写Java程序,实现判断所输入字符的类型(数字.小写字母.大写字母或其他字符) 实现思路: 声明变量c,用于存储用户输入的字符. 通过Scanner接收用户输入 ...

  5. Drools创建Maven工程

    1.说明 本文介绍创建Drools的Maven工程的方法, 仅使用Eclipse开发工具, 不使用Drools的相关插件, 先创建一个Maven工程, 然后引入Drools的相关依赖即可, 最后再写一 ...

  6. MySQL数据库安装Version5.7

    MySQL数据库版本: mysql-5.7.22-linux-glibc2.12-x86_64 Linux服务器系统: CentOS 7.4 64bit MySQL安装用户: mysql/aliyun ...

  7. [ vue ] Quasar封装q-dialog组件,在外层实现弹出框的开启和关闭

    场景描述: 见:https://www.cnblogs.com/remly/p/12981582.html 具体实现: <!-- 父组件 --> <template> < ...

  8. iView 用renderContent自定义树组件

    iview的树组件在有默认选中状态的时候默认选中状态的样式改变有bug,默认选中的样式不好看,鉴于此,有renderContent来改造iview的树组件, 效果如图 代码如下 <templat ...

  9. CSS中inherit指定继承的使用方法和auto的区别

    CSS中的每个属性都有一个特定值"inherit",其含义是指定继承父元素的相应属性,使用inherit一方面在代码上能地表明要继承于父元素的样式属性,另一方面也使子元素继承了那些 ...

  10. testng 的常用注解

    常用注解如下: @BeforeSuite: 此注解的方法会在当前测试集合中的任一测试用例前执行 @AfterSuite: 此注解的方法会在当前测试集合中的所有测试程序结束后执行 @BeforeTest ...