我们如果仅仅在python文件中写返回的html,不仅会复杂而且不易维护。因此需要用jinjia模板。首先确保自己的目录正确,因为用jinjia模板必须再templates根目录下,这个templates又必须在你创建的目录下
这个是python文件的flask渲染模板
#
# made by 杨庆华
from flask import Flask,render_template
user = {
'username':'Greay',
'bio':'A boy who loves movies'
}
movies = [
{'name':'侠盗猎车手','year':'2008'},
{'name':'急先锋','year':'2010'},
{'name':'龙门客栈','year':'2018'},
{'name': '机器猫', 'year': '2018'},
{'name': '博人转', 'year': '2019'},
{'name': '唐人街探案', 'year': '2021'},
]
app = Flask(__name__)
@app.route('/')
def index():
return 'hello'
@app.route('/watchlist')
def watchlist():
return render_template('watchlist.html',user=user,movies = movies)
app.run()
以下是watchlist.html内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ user.username }}</title>
</head>
<body>
<h2>{{ user.username }}</h2>
{% if user.bio %}
<i>{{ user.bio }}</i>
{% else %}
<i>This user not exists</i>
{% endif %}
{#下面是电影清单,这是注释 #}
<h3>{{user.username}}'s watchlist 长度是({{movies|length}})</h3>
<ul>
{% for movie in movies %}
<li>{{movie.name}} -- {{movie.year}}</li>
{% endfor %}
</ul>
</body>
</html>
注意需要补充说明的是三个定界符
- 语句。比如if,for
{% %} 注意{ 和 %之间不能又空格哦! - 表达式,如字符串,变量,函数等
{{ … }} - 注释
{# … #}
然后你在浏览器输入自己的地址http://127.0.0.1:5000/watchlist