《Flask 入门教程》第 3 章:模板
发布网友
发布时间:2024-08-19 03:44
我来回答
共1个回答
热心网友
时间:2024-08-22 16:41
在动态Web应用中,用户访问页面时,内容需要根据程序逻辑实时生成,这需要利用模板和渲染引擎。在Flask中,我们利用Jinja2模板引擎来实现这一过程。Jinja2的模板系统允许在HTML中嵌入Python表达式,使页面内容可根据数据动态变化。
默认情况下,Flask会查找位于程序实例所在模块同级目录的templates文件夹中的模板。如果你的程序在项目根目录的app.py,就需要在根目录下创建templates文件夹。
以社交网站的个人主页为例,Jinja2的基本语法与Python类似,有三种常用的定界符用于区分变量和表达式。模板中的变量在渲染时通过函数传递,如'index.html'中的movies变量。
在templates文件夹下创建的index.html模板中,Jinja2提供了过滤器,如length过滤器,用于处理数据。在app.py中,我们定义了虚拟数据,模拟实际页面内容,并通过render_template()函数将模板与数据结合,返回渲染后的HTML响应。
这个index视图函数会识别并执行index.html中的Jinja2语句,替换变量值并移除表达式。访问localhost:5000/将看到渲染后的主页。
本章通过实际操作,你已经理解了如何在Flask中使用模板和Jinja2渲染动态内容。记得提交你的代码,以便跟踪进度。如果你想深入学习,可以参考本书示例程序的8537d98版本。