七天学会flask---模板-行语句(第一天)
Posted 家乐福的搬砖日常
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了七天学会flask---模板-行语句(第一天)相关的知识,希望对你有一定的参考价值。
flask模板技术---行语句
flask行语句,可以让模板的代码编写更加容易便捷,不然总是用% ... % 来标识挺麻烦的, 使用行语句首先需要进行设置
app.jinja_env.line_statement_prefix = \'#\'
先来看一下不使用行语句时如何写一段for循环
% for i in range(10) % <p> i </p> % endfor %
而一旦开启了行语句,你就可以这样写了
# for i in range(10): <p> i </p> # endfor
我已经设置了行语句的前缀为# ,在模板里,只要一行代码里去掉前面的空白符后是以# 开头的,就视为行语句。
行语句的代码和我们平时写python代码一样,不用那么麻烦的用% 和 % 进行标记了。
若有未闭合的圆括号、花括号或方括号,行语句可以跨越多行:
<ul> # for href, caption in [(\'index.html\', \'Index\'), (\'about.html\', \'About\')]: <li><a href=" href "> caption </a></li> # endfor </ul>
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中的函数。将在下一篇文章中详细说明~
期待吗?
你确定不关注我一波?
以上是关于七天学会flask---模板-行语句(第一天)的主要内容,如果未能解决你的问题,请参考以下文章
七天学会Python基础-第七天3/3-自定义模块和random模块