一、概述
- 说明 模板文件就是按照特定规则书写的一个负责展示效果的HTML文件;模板引擎就是提供特定规则的解释和替换的工具
- Jinja2 在Flask中使用的就是该模板引擎,它是由flask核心开发组人员开发的
二、变量
目录结构
代码语言:javascript复制project/
manage.py <span class="hljs-comment"># 项目启动控制文件</span>
templates/ <span class="hljs-comment"># 所有的模板文件</span>
渲染模板文件
在templates下创建一个模板文件(hello.html),内容如下:
代码语言:javascript复制<h1>Hello Flask !</h1>
渲染
- render_template
- render_template_string
使用
代码语言:javascript复制from flask import Flask,render_template,render_template_string
@app.route('/')
def index():
# 渲染模板文件
# return render_template('hello.html')
# 渲染模板字符串
return render_template_string('<h1>渲染字符串</h1>')
使用变量
- 视图传递给模板的数据
- 要遵守标识符规则
- 语法 {{ var }}
在templates下创建一个模板文件var.html,内容如下:
代码语言:javascript复制{# 这里是注释,渲染的变量放在两个大括号中 #}
<h1>Hello {{ name }}</h1>
模板渲染
代码语言:javascript复制<span class="hljs-keyword">from</span> flask <span class="hljs-keyword">import</span> Flask,render_template,render_template_string,g
<span class="hljs-meta">@app.route('/var/')</span>
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">var</span><span class="hljs-params">()</span>:</span>
<span class="hljs-keyword">return</span> render_template(<span class="hljs-string">'var.html'</span>, name=<span class="hljs-string">'lucky'</span>)
<span class="hljs-comment"># 渲染模板字符串</span>
<span class="hljs-keyword">return</span> render_template_string(<span class="hljs-string">'<h1 style="color:red;">{{name}}</h1>'</span>,name=<span class="hljs-string">'内容'</span>)
注意
- 如果使用的变量不存在,则插入的是空字符串
- 在模板中使用点语法
- 可以调用对对象方法,并且可以传递参数
- 值为bool值、None时会将值转为字符串显示
- 不能修改变量的值