6-模板初步使用

 官网:

        中文版: 介绍-Jinja2中文文档

        英文版: Template Designer Documentation — Jinja Documentation (2.11.x)

模板语法 

1. 模板渲染

(1) app.py 准备数据

import jsonfrom flask import Flask,render_templateimport settingsapp = Flask(__name__)
app.config.from_object(settings)  # 加载配置文件class Girl:  # 自定义类def __init__(self, name):self.name = nameself.gender = "女"def __str__(self):return self.name@app.route("/show")
def show():name = "coco"  # strage = 18  # intfirends = ["A", "B", "C"]  # listdict1 = {"gift": "包"}  # dict# 创建对象girlfriend = Girl("lili")  # 自定义的类构建的类型: Girl类型# 向模板传递数据return render_template("index.html", name=name, age=age, firends=firends, dict1=dict1, girl=girlfriend)if __name__ == '__main__':app.run(port=8080)

(2) index.html 渲染数据

{{ name }}
{{ age }}
{{ firends.0  }}  {#{{ list.0 }} 同 {{ list[0] }}#}
{{ dict1.gift }}  {#{{ dict.key }} 同 {{dict.get(key) }}#}
{{ girl.name }}  {#{{ gril.name }} 同 {{ 对象.属性 }}#}

2. if 判断 和 for 循环 和 loop 内置变量

 

(1)app.py 准备数据

from flask import Flask,render_templateimport settingsapp = Flask(__name__)
app.config.from_object(settings)  # 加载配置文件@app.route("/show")
def show():girls = ["AA", "BBB", "CC"]dict1 = [{"name": "张三", "pwd": "123", "addr": "beijing", "phone": "13800000001"},{"name": "李四", "pwd": "123", "addr": "shanghai", "phone": "13800000002"},{"name": "王五", "pwd": "123", "addr": "guangzhou", "phone": "13800000003"},]return render_template("show.html", grils=girls, users=dict1)if __name__ == '__main__':app.run(port=8080)

(2) show.html渲染数据

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.a {color: red;}</style>
</head>
<body><ul>
{#循环列表渲染数据#}{% for gril in grils %}<li>{{ gril }}</li>{% endfor %}
</ul>
<hr><ul>
{#循环列表,根据条件增加样式#}{% for gril in grils %}{% if gril|length>=3 %}<li class="a">{{ gril }}</li>{% else %}<li>{{ gril }}</li>{% endif %}{% endfor %}
</ul>
<hr><table border="1" cellpadding="0" cellspacing="0" width="50%">
{#    循环字典 #}{% for user in users %}<tr><td>{{ user.name }}</td><td>{{ user.pwd }}</td><td>{{ user.addr }}</td><td>{{ user.phone }}</td></tr>{% endfor %}
</table><hr><table border="1" cellpadding="0" cellspacing="0" width="50%">
{#    循环字典,根据条件增加样式 #}{% for user in users %}<tr {% if loop.index==2 %}style="background-color:aqua"{% endif %}><td>{{ loop.index }}</td><td>{{ user.name }}</td><td>{{ user.pwd }}</td><td>{{ user.addr }}</td><td>{{ user.phone }}</td></tr>{% endfor %}</table>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/46354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上海亚商投顾盘:沪指震荡反弹 机器人概念股掀涨停潮

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 三大指数今日震荡反弹&#xff0c;科创50盘中涨超1%。机器人概念股掀涨停潮&#xff0c;通力科技、昊志机电、哈焊…

CentOS ens160 显示disconnected

使用nmcli device查看网卡状态&#xff0c;显示如图&#xff1a; 检查宿主机系统VMware DHCP Sevice和VMware NAT Sevice服务是否正常运行。 右键点击我的电脑管理按钮&#xff0c;打开计算机管理点击服务

C++入门篇9---list

list是带头双向循环链表 一、list的相关接口及其功能 1. 构造函数 函数声明功能说明list(size_type n,const value_type& valvalue_type())构造的list中包含n个值为val的元素list()构造空的listlist(const list& x)拷贝构造list(InputIterator first, InputIterator…

【仿写tomcat】七、项目结构优化以及代码开源

仿写tomcat 项目结构开源地址 项目结构 到目前为止&#xff0c;博主的仿写tomcat就告一段落了&#xff0c;后续有时间了还会继续补充功能&#xff0c;现在的项目结构如下。 在保证功能的前提下作出的改动有&#xff1a; 将各个类中的参数统一成了Config类&#xff0c;通过对…

17----图表

本节我们来学习markdown的图表。 Markdown 本身并不支持图表&#xff0c;但 Markdown 在技术文章、文档、博客领域使用较多&#xff0c;所以非常多的 Markdown 解析器是支持图表扩展的。在支持图表扩展的 Markdown 解析器中&#xff0c;我们可以使用解析支持的图表语法来渲染图…

shell连接ubuntu

当使用aws的私钥连接时,老是弹出输入私钥密码,但是根本没有设置过密码,随便输入后,又提示该私钥无密码... 很早就使用过aws的ubuntu,这个问题也很早就遇到过,但是每次遇到都要各种找找找...索性这次记下来算了 此处用FinalShell连接为例 首先现在Putty连接工具: 点击官方下载 …

用 VB.net,VBA 两种方式 读取单元格内的 换行数据,并出力到 CSV文件

用 VB.net&#xff0c;VBA 两种方式 读取单元格内的 换行数据&#xff0c;并出力到 CSV文件 需求 如下图所示&#xff0c;为了生成csv文件导入数据库&#xff0c;需要将下图 的 1 和 2 拼接成 如下 3 所示的一行数据&#xff0c; 开头为 1 &#xff0c;往后为 2 的换行数据 将换…

TCP中窗口和滑动窗口的含义以及流量控制

一.窗口 在TCP中由于要保证可靠性&#xff0c;所以每发送一条数据后&#xff0c;都需要接收方返回一条应答报文&#xff0c;要是我们每发送一条数据&#xff0c;发送方就等待接收应答报文&#xff0c;收到之后再去发送下一条数据&#xff0c;这样我们就会花费大量的时间在等待应…

【系统工具】开源服务器监控工具WGCLOUD初体验

经常看到服务器上传下载流量一直在跑&#xff0c;也不知道是啥软件在偷偷联网~~~官网地址&#xff1a;www.wgstart.com&#xff0c;个人使用是免费的。 WGCLOUD官网介绍 "WGCLOUD支持主机各种指标监测&#xff08;cpu使用率&#xff0c;cpu温度&#xff0c;内存使用率&am…

Redis 数据持久化

官方文档&#xff1a;https://redis.io/docs/management/persistence/ Redis提供了主要提供了 2 种不同形式的持久化方式&#xff1a; RDB&#xff08;Redis数据库&#xff09;&#xff1a;RDB 持久性以指定的时间间隔执行数据集的时间点快照。 AOF&#xff08;Append Only F…

【算法刷题之数组篇(2)】

目录 1.leetcode-35. 搜索插入位置&#xff08;简单&#xff09;2.leetcode-74. 搜索二维矩阵&#xff08;中等&#xff09;3.leetcode-73. 矩阵置零&#xff08;中等&#xff09;4.leetcode-56. 合并区间&#xff08;中等&#xff09;5.leetcode-54. 螺旋矩阵&#xff08;中等…

HAProxy

目录 HAProxy HAProxy介绍 主要特性 LVS、nginx、HAProxy区别 nginx LVS HAProxy 负载均衡策略 Haproxy搭建 Web 群集 Haproxy服务器 编译安装 Haproxy Haproxy服务器配置 添加haproxy 系统服务 节点服务器部署 日志定义 HAProxy HAProxy介绍 HAProxy是可提供高…

前端编辑页面修改后和原始数据比较差异

在软件研发过程中&#xff0c;会遇到很多编辑页面&#xff0c;有时编辑页面和新增页面长的基本上一样&#xff0c;甚至就是一套页面供新增和编辑共用。编辑页面的场景比较多&#xff0c;例如&#xff1a; 场景一、字段比较多&#xff0c;但实际只修改了几个字段&#xff0c;如…

STM32/AT32 MCO管脚输出时钟配置

前言&#xff1a;最近在学以太网通讯&#xff0c;发现RMII接口配置的时钟管脚有MCU自己输出&#xff0c;想要看看是怎么输出的&#xff0c;对此进行记录 1、交接项目项目上使用的是PA8管脚来输出时钟50MHZ&#xff0c;提供给上面refclk。 先看手册 PA8的复用功能具备将MCU时钟…

分布式链路追踪——Dapper, a Large-Scale Distributed Systems Tracing Infrastructure

要解决的问题 如何记录请求经过多个分布式服务的信息&#xff0c;以便分析问题所在&#xff1f;如何保证这些信息得到完整的追踪&#xff1f;如何尽可能不影响服务性能&#xff1f; 追踪 当用户请求到达前端A&#xff0c;将会发送rpc请求给中间层B、C&#xff1b;B可以立刻作…

算法:双指针解决数组划分和数组分块问题

文章目录 实现原理实现思路典型例题移动0复写0快乐数盛最多水的容器有效三角形的个数三数之和四数之和 总结 在快速排序或者是其他和数组有关的题目中&#xff0c;有很经典的一类题目是关于数组划分的&#xff0c;数组划分就是把数组按照一定的规则划分为不同的区间&#xff0c…

【【典型电路设计之片内存储器的设计之RAM的Verilog HDL描述一】】

典型电路设计之片内存储器的设计之RAM的Verilog HDL描述一 RAM是随机存储器&#xff0c;存储单元的内容可按需随意取出或存入。这种存储器在断电后将丢失所有数据&#xff0c;一般用来存储一些短时间内使用的程序和数据。 其内部结构如下图所示&#xff1a; 例&#xff1a;用…

PL 侧驱动和fpga 重加载的方法

可以解决很多的问题 时钟稳定后加载特定fpga ip &#xff08;要不内核崩的一塌糊涂&#xff09;fpga 稳定复位软件决定fpga ip 加载的时序 dluash load /usr/local/scripts/si5512_setup.lua usleep 30 mkdir -p /lib/firmware cp -rf /usr/local/firmare/{*.bit.bin,*.dtbo} …

拥塞控制(TCP限制窗口大小的机制)

拥塞控制机制可以使滑动窗口在保证可靠性的前提下&#xff0c;提高传输效率 关于滑动窗口的属性以及部分机制推荐看TCP中窗口和滑动窗口的含义以及流量控制 拥塞控制出现的原因 看了上面推荐的博客我们已经知道了&#xff0c;由于接收方接收数据的能力有限&#xff0c;所以要通…