二.Flask 学习模板
Flask 为你配置 Jinja2 模板引擎。使用 render_template() 方法可以渲染模板,只需提供模板名称和需要作为参数传递给模板的变量就可简单执行。
至于模板渲染? 简单来说,就是将“数据”渲染到你的模板里。看完以下章节示例你就会知道了。
(其实更为推荐的方式是前后端分离,不推荐用Flask模板,以下仅供学习参考)
模板基础
先来看一个最简单的模板示例:
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def template1():
return render_template("index.html")
if __name__=='__main__':
app.run()

那上述 index.html 这类 html 模板文档应放置在哪呢? Flask 会在 templates 文件夹(注意拼写)内寻找模板。因此,如果你的应用是一个模块,那么模板文件夹应该在模块旁边;如果是一个包,那么就应该在包里面:
情形 1: 一个模块:
/application.py
/templates
/xxx.html
情形 2: 一个包:
/application
/__init__.py
/templates
模板渲染
这边仅简单介绍下模板渲染,可以充分使用 Jinja2 模板引擎的威力。更多内容,详见官方 Jinja2 模板文档 。
新建一 flask.html , 同样放置于 templates 文件夹中,body 内容参考如下:
<body>
<h1>{{ content }}</h1>
</body>
其中 {{ content }} 即为需要传递的参数; 这边的模板文件 跟 HTML文件 的区别只是里面加入了以 {{ ... }} 组成的动态内容占位符
同上例,新建一路由,代码如下:
@app.route("/flask")
def template2():
c = "flask"
return render_template("flask.html",content=c)
示例运行后,访问 localhost:5000/flask 会返回显示 flask.html , 其中 content 部分会返回代码中你所设置的值:

模板衍生
在模板内部你也可以访问 request 、session 和 g 对象,以及 get_flashed_messages() 函数。
模板在继承使用的情况下尤其有用, 如需了解,请参阅模板继承文档 。简单的说,模板继承可以使每个页面的特定元素(如页头,导航,页尾)保持一致。
自动转义默认开启。因此,如果 name 包含 HTML ,那么会被自动转义。如果你可以信任某个变量,且知道它是安全的 HTML (例如变量来自一个把 wiki 标记转换为 HTML 的模块),那么可以使用 Markup 类把它标记为安全的。否则请在模板 中使用 |safe 过滤器。更多例子参见 Jinja 2 文档。
本篇博文仅简单介绍下 Flask 模板,简单的页面使用 Flask 模板是很方便的,但复杂的就麻烦了。诚如开头所言,推荐前后端分离的做法,详细的模板使用还请参阅 Jinja 2 文档。
二.Flask 学习模板的更多相关文章
- Flask 学习(二)jinja2模板介绍
控制语句和表达式 举例 Flask Python代码 from flask import Flask, render_template, redirect, request app = Flask(_ ...
- Python Flask学习笔记之模板
Python Flask学习笔记之模板 Jinja2模板引擎 默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板.Flask提供的render_template函数把Jinja ...
- Flask 学习篇二:学习Flask过程中的记录
Flask学习笔记: GitHub上面的Flask实践项目 https://github.com/SilentCC/FlaskWeb 1.Application and Request Context ...
- Flask 学习(三)模板
Flask 学习(三)模板 Flask 为你配置 Jinja2 模板引擎.使用 render_template() 方法可以渲染模板,只需提供模板名称和需要作为参数传递给模板的变量就可简单执行. 至于 ...
- Flask网页模板的入门
#网页模板需要导入render_template from flask import Flask,render_template 方法一: #使用render_template模块来渲染模板文件 ...
- flask 基本操作 模板语言 session
Django web:优点:大而全,ORM models ,model Form ,admin ,csrf ,session缺点:资源浪费 Flask web:优点:小而精,ORM:x , Form: ...
- Flask学习之六 个人资料和头像
英文博客地址:http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-vi-profile-page-and-avatars ...
- Flask学习之五 用户登录
英文博客地址:http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-v-user-logins 中文翻译地址:http:// ...
- [ZHUAN]Flask学习记录之Flask-SQLAlchemy
From: http://www.cnblogs.com/agmcs/p/4445583.html 各种查询方式:http://www.360doc.com/content/12/0608/11/93 ...
随机推荐
- Spring LazyInitializatoinException
今天做project创建了一个新的类A,这个新类包含了一个另外一个类B的Set.B类包含了另外一个C类的集合... public class A{ @Id int id; @OneToMany(fet ...
- java——形参与实参
看了很多的文章,稍微有一些的总结:对最基本的形参与实参有了一定的理解,虽然还是不够深入. 1.基本概念 形参:全称为"形式参数"是在定义函数名和函数体的时候使用的参数,目的是用来接 ...
- unity重写软键盘for Android NGUI
一 原因 以为某些原因,需要重写Unity游戏中Android的软键盘的样式,然而unity对android和ios的ios的软键盘都有封装,在Unity中TouchScreenKeyboard.Op ...
- scrapy_redis项目配置
一.创建普通scrapy项目 二.spiders爬虫文件中修改项 import scrapy from XX.items import XXItem import json # ----1 导入类 f ...
- MySQL行转列、列转行
一.行转列 有如图所示的表,现在希望查询的结果将行转成列 建表语句如下: CREATE TABLE `TEST_TB_GRADE` ( `ID` int(10) NOT NULL AUTO_INCRE ...
- 手动增加swap空间
在日常工作中,swap没有必要搞那么大的空间,因为现在好多服务器都使用了ssd硬盘,这些硬盘还是比较贵的.如果服务器内存是128G,swap空间还设置成内存的两倍的话,那岂不是很明显是很 ...
- 1011. World Cup Betting (20)
生词(在文中的意思) tie 平局 lay a bet 打赌 putting their money where their mouths were 把他们的钱用在刀刃上 manner of 的方式 ...
- 前端开发【第四篇: Dom操作】
文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM把 ...
- failed to start process with commandline '%LAUNCHER_PATH% %LAUNCHER_ARGS%', ErrorCode = '0x80070002
在dotnet core进行开发的时候,需要开发目录直接iis进行部署,然而启动的时候,报异常,我们查看windows下的应用日志发现有个这样的错误信息 Application 'MACHINE/WE ...
- input type file兼容性
input 中的type file类型 在ie10及以上还算正常,在ie9中你就找不到他在哪了 解决此类的问题就需要巧妙的运用的css 以及input 了 需要两个input配合来写,一个i ...