Flask入门教程——李辉 第三章 关键知识梳理
文章目录
- Flask入门教程——李辉 第三章 关键知识梳理
- 两个概念
- 模板(Jinja2)基本语法
- 实现案例
- 效果演示
Flask入门教程——李辉 第三章 关键知识梳理
两个概念
- 模板
- 渲染
把包含变量和运算逻辑的HTML
或其他格式的文本叫做模板,执行这些变量替换和逻辑计算工作的过程被称为渲染
Flask
使用的模板渲染引擎是Jinja2
render_template
函数用于渲染模板
模板(Jinja2)基本语法
- 三种常用定届符
- 过滤器语法
{{变量|过滤器}}
- 标记变量
{{ ... }}
- 标记语句
{% ... %}
- 写注释
{# ... #}
所有可用的过滤器
实现案例
- 创建模板文件夹
mkdir templates
- 编写主页模板(templates/index.html)
vscode
快速生成网页模板技巧
vscode
Jinja2
扩展 Jinja2 Enhance
<!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>
- 创建虚拟数据
# coding = utf-8
from faker import Fakerfake = 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)
- 渲染主页
# coding = utf-8
from flask import Flask,render_templateapp = 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)