我curl
用来观看Web应用程序的输出。当Flask和Jinja渲染模板时,输出中会有很多不必要的空白。它似乎是通过渲染Flask-WTF和Flask-
Bootstrap中的各种组件来添加的。我可以使用剥离它sed
,但是有没有办法从Jinja控制它呢?
Jinja有多种控制空白的方法。它 没有 办法美化输出,您必须手动确保所有内容看起来都“不错”。
最广泛的解决方案是一套trim_blocks
,并lstrip_blocks
在ENV。
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
如果要在文件末尾保留换行符,请设置strip_trailing_newlines = False
。
您可以使用控制字符来修改标签周围的空格的工作方式。
-
始终删除空白,+
始终保留空白,覆盖该标记的环境设置。该-
角色可以在标签的开头或结尾(或两者)去控制空格这个方向发展,该+
字符才有意义,在标签的开始。
{%- if ... %}
条之前{%- if ... -%}
条之前和之后{%+ if ... %}
保留之前{%+ if ... -%}
保留之前和之后{% endif %}
是分开对待控制字符仅适用于 您 编写的模板。如果您包括模板或使用第三方的宏,则他们写的模板将适用于该零件。
6.1 渲染模板 一旦你拥有一个模版文件,你可以通过给一个map来给它传递数据。 map是一个变量及赋予的值的集合,模板使用它来得到变量的值,或者对于块标签求值。 它的渲染函数有一个可选的变量键值对map 通过 ctx.Render() 方法来渲染模板,例如: func (r *Render) Serve(ctx *faygo.Context) error { return ctx.Ren
Tango默认核心不包含模板渲染功能,在官方中间件中包含两个渲染引擎中间件,一个是 Go标准模板引擎, 另一个是 Pongo2模板引擎
在控制器里模板渲染最常用的方法是display,在CMF中支持如下的模板渲染方式: //不带任何参数 $this->display(); 此种方式系统会自动判断模板路径,并渲染出模板内容,此种方式模板路径是:主题名/应用名/控制器名/操作名+模板文件后缀名; $this->display('edit'); 此种方式表示调用此控制器下的edit操作的模板; $this->display(':in
Tpongo2 中间件是 pongo2.v3 模板引擎的 Tango 支持。 安装 go get github.com/tango-contrib/tpongo2 示例 package main import ( "github.com/lunny/tango" "gopkg.in/flosch/pongo2.v3" "github.com/tango-contrib/tp
说明 调用方法: $.f2e.util.render(temp,data,fn,helper); 函数说明: 调用template渲染模板,依赖于artTemplate库 参数说明: 参数名 类型 说明 备注 temp string html字符串 无 data object 参数名 无 fn function 回调函数 无 helper function artTemplate自定义方法 无
Renders中间件是一个Go模板引擎的 Tango 中间件。 安装 go get github.com/tango-contrib/renders 示例 type RenderAction struct { renders.Renderer } func (x *RenderAction) Get() { x.Render("test.html", renders.T{