开发环境:win10 + vscode + python3.7
Flask动态模板渲染
动态渲染
# 动态网页模板渲染
from flask import Flask
from flask import render_template
from random import randint
app = Flask(__name__)
@app.route("/")
def index():
return render_template('index/index.html')
# 单变量的模板渲染
@app.route("/user/<string:name>")
def user_show(name):
return render_template('user.html', name=name)
# 多变量的模板渲染
@app.route('/user2/<string:name>')
def many_show(name):
age = 12
return render_template('user2.html', name=name, age=age)
# 模板文件的条件语句
@app.route('/c/')
def c():
i = randint(0, 10)
return render_template('c.html', i=i)
# 模板文件中的循环语句
@app.route('/x/')
def x():
j = []
for i in range(0, 10):
j.append(i)
return render_template('x.html', j=j)
# 列表与字典变量的操作
@app.route('/qt/')
def qt():
lista = [1, 2, 3, "a", "b"]
dictb = {'a': 'hello', 'b': 'world', 'c': '!'}
return render_template('qt.html', l=lista, d=dictb,)
# 开启监听器
if __name__ == "__main__":
app.run(debug=True)
c.html 模板文件代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>条件模板渲染</title>
<h1>条件模板渲染</h1>
</head>
<body>
{% if i < 5 %}
<p>返回值小于5</p>
<p>返回值为{{i}}</p>
{% elif i >= 5 and i < 8 %}
<p>返回值大于等于5且小于8</p>
<p>返回值为{{i}}</p>
{% else %}
<p>返回值大于等于8</p>
<p>返回值为{{i}}</p>
{% endif %}
</body>
</html>
x.html模板文件代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>循环渲染</title>
<h1>循环渲染</h1>
</head>
<body>
{% for each in j %}
{% if loop.last %}
<p>这是最后一次循环</p>
{% elif loop.first %}
<p>这是第一次循环</p>
{% else %}
<p>这是循环过程</p>
{% endif %}
<p>这里显示{{each}}</p>
<p>从1开始算,这是第{{loop.index}}次循环</p>
<p>从0开始算,这是第{{loop.index0}}次循环</p>
-------------------------------
{% endfor %}
</body>
</html>
qt.html模板文件代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>这是用户中心</title>
<h1>这是用户中心文字!</h1>
</head>
<body>
<p>列表的第1个元素:{{ l.0}}</p>
<p>列表的第4个元素:{{l.3}}</p>
-------------------------------------
<p>字典的第一个元素:{{d.a}}</p>
<p>字典的第三个元素:{{d.c}}</p>
</body>
</html>
体会一下三个文件里的模板语言代码,这个是模板文件里经常要用的到的操作。