from flask import Flask,render_template

app = Flask(__name__)

app.config.update(
DEBUG = True,
) @app.route('/')
def index():
context = {
'user':['老男孩是垃圾1','老男孩是垃圾2','老男孩是垃圾3'],
'person':{
'name':"xiaowu",
'age': 18,
'salary' : 10000,
},
'books':[
{
'name':'三国演义',
'author':'罗贯中',
'price':110
},
{
'name': '红楼梦',
'author': '曹雪芹',
'price': 109
},
{
'name': '西游记',
'author': '吴承恩',
'price': 111
},
{
'name': '水浒传',
'author': '施耐庵',
'price': 112
},
]
}
return render_template('for_used.html',**context) if __name__ == '__main__':
app.run()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>for模板使用</title>
<style>
th,td{
border: solid 1px silver
}
</style>
</head>
<body>
<h1>for循环的模板使用</h1>
<!--reverse过滤器,反转列表元素-->
{% for foo in user|reverse %}
<li>{{ foo }}</li>
<!--user中没有任何值,是空列表-->
{% else %}
<p>列表中没有任何值</p>
{% endfor %} <table style="border-spacing: 1px;">
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>薪水</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{ person.name }}</td>
<td>{{ person.age }}</td>
<td>{{ person.salary }}</td>
</tr>
</tbody>
</table>
<table style="border-spacing: 1px;">
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>薪水</th>
</tr>
</thead>
<tbody>
<tr>
{% for key,value in person.items() %}
<td>{{ value }}</td>
{% endfor %}
</tr>
<!--下面的写法-->
<tr>
{% for value in person.values()%}
<td>{{ value }}</td>
{% endfor %}
</tr>
</tbody>
</table>
<!--------------------------------------------------------------------->
<table>
<thead>
<tr>
<th>序号</th>
<th>书名</th>
<th>作者</th>
<th>价格</th>
</tr>
</thead>
<tbody>
{% for book in books %}
<!--loop.first,看是否是第一迭代,是True,不是false-->
{% if loop.first %}
<tr style="background: red">
<!--loop.last,看是否是最后一次迭代,是True,不是false-->
{% elif loop.last %}
<tr style="background: green">
{% else %}
<tr>
{% endif %}
<!---loop.index 从1开始计数,计数列表有多少元素-->
<!---loop.index0 从0开始技术-->
<td>{{ loop.index }}</td>
<td>{{ book.name }}</td>
<td>{{ book.author }}</td>
<td>{{ book.price }}</td>
{# <td style="row-span: 4">#}
{# <!--loop.length的列表的长度-->#}
{# <h4>总数:{{ loop.length }}</h4>#}
{# </td>#}
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<td>
<p style="font-weight: bold;font-size: 12px">总数</p>
</td>
<!--rowspan中必须指定要合并的列数目,是两行还是三行等等-->
<!--colspan中必须指定要合并的列数目,是两列还是三列等等-->
<td colspan="" style="text-align: center">
4
</td>
</tr>
</tfoot>
</table>
</body>
</html>

模板中for 的使用的更多相关文章

  1. ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案

    好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...

  2. SMARTY模板中如何使用get,post,request,cookies,session,server变量

    {$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间戳.直接访问PHP中 ...

  3. django url路径与模板中样式相对路径的问题

    static目录下有css和js及image等文件夹,里面放置网站的一些静态文件,static位于网站根目录下,django中配置静态文件这个就细说,网上都有,昨天在添加新内容时发现一个问题,我的ur ...

  4. 走进AngularJs(二) ng模板中常用指令的使用方式

    通过使用模板,我们可以把model和controller中的数据组装起来呈现给浏览器,还可以通过数据绑定,实时更新视图,让我们的页面变成动态的.ng的模板真是让我爱不释手.学习ng道路还很漫长,从模板 ...

  5. [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. Thinkphp回顾(五)之前台模板中的基本语法

    一.导入CSS和JS文件 的三种方式  (了解) 1.link方式(常规) <link rel=’stylesheet’ type=’text/css’ href=’__PUBLIC__/Js/ ...

  7. Thymeleaf+SpringMVC,如何从模板中获取数据

    Thymeleaf+SpringMVC,如何从模板中获取数据 在一个典型的SpringMVC应用中,带@Controller注解的类负责准备数据模型Map的数据和选择一个视图进行渲染.这个模型Map对 ...

  8. ThinkPHP模板中如何操作session,以及如果session中保存的是数组的情况

    在ThinkPHP的模板中操作session时,可以参考ThinkPHP参考文档中的“模板—>系统变量”部分,在默认模板引擎中,语法如下: {$Think.session.user} //输出s ...

  9. ejs模板中的四种表达式输出形式

    在ejs模板中,通常会用下面四种方式在HTML中输出服务端的变量或表达式的值: 1. 直接在<%%>中写表达式或变量.这种情况通常只是用来进行表达式计算或给变量赋值,不会有任何输出,被称作 ...

  10. django 模板中url的处理

    在模板中直接添加‘/home’这样的链接是十分不推荐的,因为这是一个相对的链接,在不同网页中打开可能会返回不一样的结果. 所以推荐的是 <a href="{{ object.get_a ...

随机推荐

  1. 跨站请求伪造(csrf),django的settings源码剖析,django的auth模块

    目录 一.跨站请求伪造(csrf) 1. 什么是csrf 2. 钓鱼网站原理 3. 如何解决csrf (1)思路: (2)实现方法 (3)实现的具体代码 3. csrf相关的装饰器 (1)csrf_p ...

  2. JavaScript基础——JavaScript数据类型(笔记)

    数据类型(笔记) null和undefined 在JavaScript中有两个特殊的值: null和undefined.简单说明如下: null 是Null类型的值,Null类型的值只有一个值(nul ...

  3. 对React的研究-------------引用

    DOM 的全称是 Document Object Model (文档对象模型) 响应式 UI const ThinkerWithHat = ({ hat }) => (  <div> ...

  4. jquery input选择器 语法

    jquery input选择器 语法 作用::input 选择器选取表单元素.该选择器同样适用于 <button> 元素.大理石平台价格表 语法:$(":input") ...

  5. Java多线程和并发(五),线程的状态

    目录 1.线程的六个状态 2.sleep和wait的区别 3.锁池(EntryList)和等待池(WaitSet) 4.notify和notifyall的区别 五.线程的状态 1.线程的六个状态 2. ...

  6. 【清华集训2016】Alice和Bob又在玩游戏

    不难的题目.因为SG性质,所以只需要对一棵树求出. 然后如果发现从上往下DP不太行,所以从下往上DP. 考虑一个点对子树的合并,考虑下一个删的点在哪一个子树,那么剩下的状态实际上就是把一个子树所有能达 ...

  7. codefroces Round #201.a--Difference Row

    Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Description You wa ...

  8. MongoDB4和MysSQL5.7的读/写和事务处理速度简单对比

    系统环境: Ubuntu 18.04 数据库 MysSQL5.7/MongoDB4.0 插入的数据为随机生产,不重复. MySQL使用的连接库是 sqlalchemyMongoDB使用的连接库是pym ...

  9. SpringApplication及banner的配置

    配置SpringApplication 如果SpringApplication无法满足要求,你可以自己创建一个局部实例,然后对其进行设置: public static void main(String ...

  10. LeetCode 337. 打家劫舍 III(House Robber III)

    题目描述 小偷又发现一个新的可行窃的地点. 这个地区只有一个入口,称为“根”. 除了根部之外,每栋房子有且只有一个父房子. 一番侦察之后,聪明的小偷意识到“这个地方的所有房屋形成了一棵二叉树”. 如果 ...