flask学习笔记(五)--模板

欢迎加入知了课堂,学习flask

Python Flask系列(1)——基础:http://study.163.com/course/courseMain.htm?courseId=1004091002

Python Flask框架——全栈开发: http://study.163.com/course/courseMain.htm?courseId=1004507006




之前,我一直使用视图函数返回字符串的方式实现响应客户端。然而实际开发中,这种方式开发的代码对开发者而言十分混乱。不利于项目的维护,更加不便于实现复杂的业务逻辑。于是必须使用模板,( 将必要的数据和HTML字符连接在一起,存放在一个文件中 ),这样就实现了前后端分离。Flask默认模板引擎Jinja2管理模板。


一、模板文件的存放

    flask在渲染模版的时候,默认会从项目根目录下的`templates`目录下查找模版。也就是说,我们默认将模板文件存放在templates这个目录下面。如果不想把模版文件放在`templates`目录下,那么可以在`Flask`初始化的时候指定`template_folder`来指定模版的路径,比如,

app = Flask(__name__,template_folder='C:/templates')

这时,如果在默认路径找不到对应的模板时,就会检索 'c:/templates'这个目录。


二、使用模板

1.基本使用方法

在使用`render_template`渲染模版的时候,可以传递关键字参数。以后直接在模版中使用就可以了。(使用前导入对应的依赖)

flask_study.py 文件

render_template('index.html')

index.html 模板文件

你好

浏览器展示



2.带参数传递

 1.在使用`render_template`渲染模版的时候,可以传递关键字参数。以后直接在模版中使用就可以了

执行脚本 render_template('index.html',name='王二麻')
模板文件 {{name}}

PS:在html文件中,{{ 变量 }}   {% 语句/函数 %}

2. 如果你的参数过多,那么可以将所有的参数放到一个字典中,然后在传这个字典参数的时候,使用两个星号,将字典打散成关键参数。

执行脚本文件:

**context 将字典打散,等价于 name="王二麻子",heigh=190 


html文件


浏览器




三、认识过滤器

    有时候我们想要在模版中对一些变量进行处理,那么就必须需要类似于Python中的函数一样,可以将这个值传到函数中,然后做一些操作。在模版中,过滤器相当于是一个函数,把当前的变量传入到过滤器中,然后过滤器根据自己的功能,再返回相应的值,之后再将结果渲染到页面中。


1.基本使用方法

    基本语法:`{{ variable|过滤器名字 }}`。使用管道符号`|`进行组合。

将之前字典内容修改

'heigh' : -190

再将模板中的heigh变量加上过滤器处理

<p> {{ heigh|abs }} <p/>

这样就完成了取绝对值的功能,显示是190而不是-190!




欢迎加入知了课堂,学习flask

Python Flask系列(1)——基础:http://study.163.com/course/courseMain.htm?courseId=1004091002

Python Flask框架——全栈开发: http://study.163.com/course/courseMain.htm?courseId=1004507006





全部评论

相关推荐

断电再接线:1. 简历排版方面,你这内容比较少,一页放完。各模块之间建议用明显的分隔线分开,现在一眼看上去非常乱。教育经历留白太多。项目经历格式不统一。 2. 第一个项目,硬件设计太笼统,硬件架构规划是指板级电路设计还是FPGA逻辑设计?FPGA时序逻辑设计具体指的什么?实现的三个低速协议以及使用协议进行控制时序,是指什么? 3. 第二个项目,我觉得你可以和第一个项目整合一下,合并为一个项目。第二个项目说实话随便买个zynq开发板都有一直petalinux的教程,作为一个独立的项目不合适的,更像是一个小作业。 4. 第三个项目,项目内容这里,其实和环境搭建之类的东西提一嘴就好了,环境准备和编译安装工具链这种东西没多大必要写,实在要写的话可以 说 使用docker 独立sdk环境之类的。你说的这个工具我没用过,我用的比较多的是busybox和buildroot,是基于menuconfig进行配置的,如果scratch也是类似的模式的话,那我觉得这个项目也经不起细推。你可以往内核裁剪那方向靠,我说的这两个工具你也可以看看。 5. 你熟悉这些接口时序的话,你可以进一步去看一下驱动开发,然后面试的时候突出这个作为重点。第三个项目也可以将驱动开发给补充进去。因为单编内核和构建文件系统,其实很多时候是体力劳动。 6. 特长这里,独立成一个荣誉奖项的模块,把你获得的奖学金和竞赛奖项放一起。数模的话,写了国赛,美赛就不用写了。 7. 总的来说可以了,你简历上写的东西你只要都熟悉,找个实习还是没问题的。 8. 嵌入式分为硬件,底层软件和应用软件,看你的经历我建议你往底层靠,多去熟悉常用的通信接口,去看内核和驱动,网络编程这块也可以去了解一下。然后去**刷刷hot100
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务