Flask干货:Jinja2模板中的if和for语句
在上一篇文章中,小明求婚成功,大家都以为和小红过上了令人向往的幸福生活。害,但结婚后的小明却过上了苦日子,因为机智的小红居然偷偷学会了编程!!!
小红编写了下面这个抽奖程序,每天让小明“自愿”抽奖!
沃德天!
这到底是怎么回事?!?!
让我们来看看python源代码:
from flask import Flask #导入模块from flask import render_templateimport randomapp = 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_templateapp = 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中的函数。将在下一篇文章中详细说明~
期待吗?
你确定不关注我一波?
