当前位置:
首页 > Python基础教程 >
-
【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从入门到实践)》P10
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式