Flask干货:Jinja2模板中的if和for语句
在上一篇文章中,小明求婚成功,大家都以为和小红过上了令人向往的幸福生活。害,但结婚后的小明却过上了苦日子,因为机智的小红居然偷偷学会了编程!!!
小红编写了下面这个抽奖程序,每天让小明“自愿”抽奖!
沃德天!
这到底是怎么回事?!?!
让我们来看看python源代码:
from flask import Flask #导入模块
from flask import render_template
import random
app = Flask(__name__)
def choice():
rad = random.randint(1, 4) #产生1~4范围内的随机整数
return render_template('choice.html', number=rad)
if __name__ == '__main__':
app.run(debug=True)
<html lang="en">
<head>
<meta charset="utf-8">
<title>中奖提示!</title>
</head>
<body>
{% if number==1 %}
<h1>恭喜!您抽得一等奖,获得为小红购买一个包包的机会!(●'◡'●)</h1>
{% elif number==2 %}
<h1>恭喜!您抽得二等奖,获得为小红购买一支口红的机会!(●'◡'●)</h1>
{% elif number==3 %}
<h1>恭喜!您抽得三等奖,获得为小红购买一个冰淇淋的机会!(●'◡'●)</h1>
{% else %}
<h1>很遗憾!您未中奖!(;′⌒`)</h1>
{% endif %}
<h1>中奖数字为:{{number}}</h1>
</body>
</html>
嚯!中奖概率75%!!!如果是数字1、2、3都能中奖!
原来在前端的Jinja2语法中,if可以进行判断:存在的参数是否满足条件。基本语法如下:
随机抽取的数字被赋值给number,通过number就能判断出几等奖!如果不中奖,还可以通过刷新页面奖励一次!
小明也不甘示弱!立马写出一份价格表!
不给钱怎么买?!?!
from flask import Flask #导入模块
from flask import render_template
app = Flask(__name__)
def choice():
goods = [{'name':'包包', 'price':'500元'}, \
{'name':'口红', 'price':'300元'}, \
{'name':'冰淇淋', 'price':'20元'}]
return render_template('goods.html', **locals())
if __name__ == '__main__':
app.run(debug=True)
<html lang="en">
<head>
<meta charset="utf-8">
<title>价格表</title>
</head>
<body>
<table>
<thead>
<th>商品名称</th>
<th>商品价格</th>
</thead>
<tbody>
{% for good in goods %}
<tr>
<td>{{good.name}} </td>
<td>{{good.price}} </td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
那除了if和for相似外,还有没有其他相似的地方呢?
当然有,比如宏定义,其实就是python中的函数。将在下一篇文章中详细说明~
期待吗?
你确定不关注我一波?