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. cookie和session django中间件

    目录 一.cookie和session 1. 为什么要有cookie和session 二.cookie 1. 什么是cookie 2. django中关于cookie的使用 (1)后端设置cookie ...

  2. 测试网站接口,nginx篇

    nginx是反向代理,怎么通过nginx反向代理要测试接口的线上网站呢. 这里自我提供了一个方法,仅供参考!建议不要用于刷接口等非常规的用途,后果会很严重. 首先 用node express创建一个项 ...

  3. C# MVC入門

    博客園已有教程,記錄一下防止遺忘,以後也可以多回顧回顧(http://www.cnblogs.com/iamlilinfeng/archive/2013/04/01/2992432.html) 使用V ...

  4. C++:std::map的遍历

    for (auto &kv : myMap) { count<<kv.first<<" has value "<<kv.second&l ...

  5. 什么是弹性盒子 ( Flex Box)?

    ㈠什么是弹性盒子? 弹性盒子是 CSS3 的一种新的布局模式.引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列.对齐和分配空白空间. 弹性盒子由弹性容器(Flex con ...

  6. luogu 3241 [HNOI2015]开店 动态点分治+二分+vector

    独立写出来+想出来的,1.5h就切了~ 建立点分树,然后用 $vector$ 暴力存所有子节点,然后二分一下子就可以了. #include <cstdio> #include <ve ...

  7. D. Tokitsukaze, CSL and Stone Game ( 取石子游戏?no,更像棋盘游戏 )

    去吧,皮皮虾 题意:  有 n 堆石子,每堆有 a[ i ] 个,然后每次 操作 可以选择任意一堆 石子,取走一个. 若你取完了之后,存在两堆石子,他们的个数一样多,你就输了( 包括两堆都是0个), ...

  8. Fiona简介

    Fiona是一个python地理空间处理库,类似于OGR

  9. IDM非补丁破解方法

    参考 http://tieba.baidu.com/p/3878377959 备份文章 在网络和共享中心中打开防火墙 高级设置->出站规则->新建规则 打开新建规则向导. 程序-> ...

  10. ES6学习一--ES5

    JSON对象方法 1.将JSON字符串转换成js对象(IE7及以下不支持)(IE7及以下兼容需其他手段) JSON.parse() 2.将js对象转成JSON字符串 JSON.stringify() ...