3.1.1、渲染模板

默认情况下,Flask 在程序文件夹中的 templates 子文件夹中寻找模板。在下一个 hello.py版本中,要把前面定义的模板保存在 templates 文件夹中,并分别命名为 index.html 和 user.html。

程序中的视图函数需要修改一下,以便渲染这些模板。修改方法参见示例 3-3。

示例 3-3 hello.py:渲染模板

from flask import Flask, render_template

# ...

@app.route(‘/‘)

def index():

return render_template(‘index.html‘)

@app.route(‘/user/<name>‘)

def user(name):

return render_template(‘user.html‘, name=name)

###完整代码示例###

#!/usr/bin/env python

#_*_ coding:utf-8 _*_

from flask import Flask

from flask import render_template

app = Flask(__name__)

@app.route("/")

def index():

return render_template("index.html")

@app.route("/user/<name>")

def user(name):

return render_template("user.html",name=name)

if __name__ == ‘__main__‘:

app.run(debug=True)

###

Flask 提供的 render_template 函数把 Jinja2 模板引擎集成到了程序中。render_template 函数的第一个参数是模板的文件名。随后的参数都是键值对,表示模板中变量对应的真实值。在这段代码中,第二个模板收到一个名为 name 的变量。

前例中的 name=name 是关键字参数,这类关键字参数很常见,但如果你不熟悉它们的话,可能会觉得迷惑且难以理解。左边的“name”表示参数名,就是模板中使用的占位符;右边的“name”是当前作用域中的变量,表示同名参数的值。

时间: 2024-08-27 00:24:11

3.1.1、渲染模板的相关文章

Flask06 地址约定、利用falsk提供的方法渲染模板

1 访问地址约定 在访问路径的末尾是否需要加 / -> 可以加,也可以不加 前端的访问路径必须和后端的路径完全匹配才能够访问成功,如果我们在后台的路径都是以 / 结尾,但是我们的访问路径是没有以 / 结尾仍然能够访问成功的原因是后台为我们进行了重定向处理(即:当我们访问路径不以 / 结尾时,在后台的是以 / 结尾时,他们是不匹配的:此时后台就会自动将前端的请求路径重定向到后台以 / 结尾的那个路由中去,给使用者的感觉就是浏览器自动在路径的末尾添加了 / ,然而并不是这样的,真正的原理是在后台使用

Mustache.js前端渲染模板

引自:http://blog.csdn.net/xuemoyao/article/details/17896203 Mustache 使用心得总结 前言: 之前的一个项目里面就有用到这个前台的渲染模版,当时挺忙的也没时间抽空总结一下,刚好上周项目里又用到这个轻量型的渲染模版,真心感觉很好用,因此就总结一下使用心得,算是一个入门级别的指引吧. 1.  Mustache 概述 Mustache是基于JavaScript实现的模版引擎,类似于JQuery Template,但是这个模版更加的轻量级,语

flask模板的基本用法、模板语法、渲染模板、模板辅助工具

flask模板 在动态web程序中,视图函数返回的HTML数据往往需要根据相应的变量(比如查询参数)动态生成. 当HTML代码保存到单独的文件中时,我们没法再使用字符串格式化或拼接字符串的当时在HTML代码中插入变量,这时我们需要使用模板引擎(template engine).借助模板引擎,我们可以再HTML文件中使用特殊的语法来标记变量,这类包含固定内容和动态部分的可重用文件称为模板(template). 模板引擎的作用就是读取并执行模板中的特殊语法标记,并根据传入的数据将变量替换为实际值,输

Django 渲染模板、路径配置、变量使用。

DTL与普通的HTML文件的区别: DTL模板是一种带有特殊语法的HTML文件,这个HTML文件可以被Django编译,可以传递参数进 去,实现数据动态化.在编译完成后,生成一个普通的HTML文件,然后发送给客户端. 渲染模板 先在templates文件夹下创建html文件. render_to_string:找到模板,然后将模板编译后渲染成Python的字符串格式.最后在通过HttpResponse类包装成一个HttpResponse对象返回回去. 在views.py文件中编写 from dj

flask渲染模板时报错TypeError: &#39;UnboundField&#39; object is not callable

渲染模板时,访问页面提示TypeError: 'UnboundField' object is not callable 检查代码,发现实例化表单类是,没有加括号:form = NewNoteForm,加了括号后就解决了form = NewNoteForm() @app.route('/index')def index(): form = NewNoteForm notes = Note.query.all() return render_template('index.html', notes

关于ThinkPHP5.0的渲染模板输出

在ThinkPHP的最新版本5.0 RC2中,渲染模版输出方法display()已经接近被废弃了. 在\think\view.php中,已经不存在display()方法. 而在\think\controller.php中,display()的函数体跟fetch()一样:     /**      * 加载模板和页面输出 可以返回输出内容      * @access public      * @param string $template 模板文件名      * @param array  

nodejs渲染模板

为什么要用nodejs来渲染? 之前前端的任务就是用HTML+CSS 来高保真的还原UI所设计原图,偶尔会使用少量的jq来对页面添加一些特效,页面还要交付给后端开发人员进行数据填充(php jsp)等模板语言,前后端依赖严重,几乎出现任何问题是只有前后端配合才能解决,后来的前后端分离,也就是前后端只用json来交流,前端通过使用ajax来进行数据填充,但是ajax的使用不利于SEO优化和首屏渲染,会造成额外的流量开销(主要在移动端). 我所设想的是nodejs只负责渲染页面,数据和后台逻辑还是由

适应laytpl 渲染模板数据

前言 当我们异步读取数据过来的时候,还要通过手动赋值,显示在页面上吗,那样你就太OUT了,哥告诉你个新方式. 那就是 laytpl 插件 用法一:渲染单条数据 <table id="Box"> <tr> <td>姓名</td><td>性别</td><td>班级</td><td>分数</td> </tr> </table> <input t

django渲染模板时跟vue使用的{{ }}冲突解决方法

var vm = new Vue({ el: '#app', // 分割符: 修改vue中显示数据的语法, 防止与django冲突 delimiters: ['[[', ']]'], data: { ... } 通过delimiters声明,将Vue的模板变量变为了[[  ]] 原文地址:https://www.cnblogs.com/chichung/p/10010520.html