文章目录
-
-
- [Flask入门教程------李辉 第三章 关键知识梳理](#Flask入门教程——李辉 第三章 关键知识梳理)
-
Flask入门教程------李辉 第三章 关键知识梳理
两个概念
- 模板
- 渲染
把包含变量和运算逻辑的HTML
或其他格式的文本叫做模板 ,执行这些变量替换和逻辑计算工作的过程被称为渲染
Flask
使用的模板渲染引擎是Jinja2
render_template
函数用于渲染模板
模板(Jinja2)基本语法
- 三种常用定届符
- 过滤器语法
{``{变量|过滤器}}
- 标记变量
{``{ ... }}
- 标记语句
{% ... %}
- 写注释
{# ... #}
实现案例
- 创建模板文件夹
bash
mkdir templates
- 编写主页模板(templates/index.html)
vscode
Jinja2
扩展 Jinja2 Enhance
bash
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ name }}'s Watchlist</title>
</head>
<body>
<h2>{{ name }}'s Watchlist</h2>
{# 使用 length 过滤器获取 movies 变量的长度 #}
<ul>
{% for movie in movies %} {# 迭代movies 变量 #}
<li>
{{ movie.title }} - {{ movie.year }}
{# 等同于 movie['title'] #}
{% endfor %} {# 不要忘记endfor 来结束for语句 #}
</li>
</ul>
<footer>
<small>
© 2018 <a href="http://helloflask.com/tutorial">HelloFlask</a>
</small>
</footer>
</body>
</html>
- 创建虚拟数据
py
# coding = utf-8
from faker import Faker
fake = Faker(locale="zh_CN")
def create_movies_generator(number:int):
"""创建生成器
:param number: 生成的个数整数
:return: 字典类型的数据
"""
for _ in range(number):
title = fake.sentence()
year = fake.year()
yield {"title": title,"year":year}
if __name__ == "__main__":
movies = list(create_movies_generator(10))
print(movies)
- 渲染主页
py
# coding = utf-8
from flask import Flask,render_template
app = Flask(__name__)
name = "开心开心-急了"
movies = [
{'title': '实现研究而且.', 'year': '1997'},
{'title': '重要出来不要不要广告.', 'year': '1987'},
{'title': '活动这些城市.', 'year': '1995'},
{'title': '历史网上你的来源选择销售没有.', 'year': '2006'},
{'title': '这样简介个人如果信息怎么类型.', 'year': '2024'},
{'title': '能够时候两个.', 'year': '2004'},
{'title': '部分有限电影不要得到应用.', 'year': '2022'},
{'title': '设备处理最后大学为了.', 'year': '1996'},
{'title': '来自谢谢决定.', 'year': '2021'},
{'title': '提供所以大家您的非常以后有关.', 'year': '2016'}
]
@app.route("/")
def index():
return render_template("index.html",name=name,movies=movies)
效果演示
