笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

模板

发布者: 笨鸟自学网

Flask 使用 Jinja 2 作为模板引擎。当然,你也可以自由使用其它的模板引擎,但运行 Flask 本身仍然需要 Jinja2 依赖 ,这对启用富扩展是必要的,扩展可 以依赖 Jinja2 存在。

本节只是快速地介绍 Jinja2 是如何集成到 Flask 中的。更多关于 Jinja2 语法本身的信息, 请参考官方文档 Jinja2 模板引擎 。

Jinja 配置

Jinja 2 默认配置如下:

  • 所有扩展名为 .html 、 .htm 、 .xml 以及 .xhtml 的模板会开启自动转义
  • 模板可以利用 {% autoescape %} 标签选择自动转义的开关。
  • Flask 在 Jinja2 上下文中插入了几个全局函数和助手,另外还有一些 目前默认的值

标准上下文

下面的全局变量默认在 Jinja2 模板中可用:

config

当前的配置对象 (flask.config)

0.6 新版功能.

在 0.10 版更改: 现在这总是可用的,甚至在导入的模版里。

request

当前的请求对象 (flask.request)。当模版不是在活动的请求上下 文中渲染时这个变量不可用。

session

当前的会话对象 (flask.session)。当模版不是在活动的请求上下 文中渲染时这个变量不可用。

g

请求相关的全局变量 (flask.g)。当模版不是在活动的请求上下 文中渲染时这个变量不可用。

url_for()

flask.url_for() 函数

get_flashed_messages()

flask.get_flashed_messages() 函数

Jinja 上下文行为

这些变量被添加到了请求的上下文中,而非全局变量。区别在于,他们默认不会 在导入模板的上下文中出现。这样做,一方面是考虑到性能,另一方面是为了 让事情显式透明。

这对你来说意味着什么?如果你想要导入一个需要访问请求对象的宏,有两种可能的方法:

  1. 显式地传入请求或请求对象的属性作为宏的参数。
  2. 与上下文一起(with context)导入宏。

与上下文中一起(with context)导入的方式如下:

{% from '_helpers.html' import my_macro with context %} 

12下一页
上一篇:教程下一篇:测试 Flask 应用

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-7-27 23:56 , Processed in 0.153526 second(s), 17 queries .

© 2001-2020

返回顶部