Flask入门教程——李辉 第三章 关键知识梳理

文章目录

Flask入门教程------李辉 第三章 关键知识梳理

两个概念
  • 模板
  • 渲染

把包含变量和运算逻辑的HTML或其他格式的文本叫做模板 ,执行这些变量替换和逻辑计算工作的过程被称为渲染

Flask使用的模板渲染引擎是Jinja2

render_template函数用于渲染模板

模板(Jinja2)基本语法
  • 三种常用定届符
  • 过滤器语法 {``{变量|过滤器}}
  1. 标记变量 {``{ ... }}
  2. 标记语句 {% ... %}
  3. 写注释 {# ... #}

所有可用的过滤器

实现案例
  1. 创建模板文件夹
bash 复制代码
mkdir templates
  1. 编写主页模板(templates/index.html)

vscode快速生成网页模板技巧

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>
            &copy; 2018 <a href="http://helloflask.com/tutorial">HelloFlask</a>
        </small>
    </footer>
</body>
</html>
  1. 创建虚拟数据
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)
  1. 渲染主页
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)
效果演示
相关推荐
海绵宝宝转agent3 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
小奇不哭3 小时前
ROS2 单节点,RGB-D 深度相机局部路径提取 + B 样条平滑路径 + YOLOv8 障碍物检测 + 深度测距,用于移动机器人视觉局部循迹。
python·yolov8·ros2·cv2·路径探索循迹
小小龙学IT3 小时前
Python scikit-learn 机器学习库深度解析
python·机器学习·scikit-learn
2601_962071574 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
卷无止境5 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
Java后端的Ai之路5 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数
计算机毕业编程指导师5 小时前
计算机毕设选题推荐:基于Hadoop与Spark的Steam游戏数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·steam游戏
计算机毕业编程指导师5 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的白鹿抖音评论大数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·抖音评论
Zootopia6265 小时前
飞行力学知识梳理1|飞行性能与稳定性
人工智能·python·算法·机器学习·无人机·学习方法·信息与通信
Y3815326625 小时前
搜索 API 延迟优化:并发数、超时与超时的真实代价
python·搜索引擎