代码尽在我的github上面:https://github.com/521xueweihan

概述:
    在Flask中,Jinja2默认配置如下:
        A.扩展名为.html,.htm,.xml和.xhtml的模板中开启自动转义。
        B.在模板中可以使用{% autoescape %}来手动设置是否转义。
        C.Flask在Jinja2环境中加入一些全局函数和辅助对象(下面写的方法)

1.|safe的作用是关闭转义字符
    转义就是对特殊字符进行转义。特殊字符指的是HTML。
    三种方法关闭转义:
        a.用Markup对象封装。
        b.在模板中使用|safe过滤
        c.临时关闭整个系统的自动转义——{% autoescape false%}
        
2.{{ 这里放变量 }}

3.注册过滤器
    两个方法:手动放入jinja_env中,要么使用template_filter()装饰器

 a:    @app.template_filter('reverse')
def reverse_filter(s):
return s[::-1] # 倒序列表 b: def reverse_filter(s):
return s[::-1]
app.jinja_env.filters['reverse'] = reverse_filter

一旦注册成功,你就可以在模板中像Jinja2的内建过滤其一样使用过滤器了。

{% for x in mylist | reverse %} # 这里就可以按照你注册的过滤器来进行操作
{% endfor%}

4.环境处理器的作用是把新的变量自动引入模板环境中,返回是一个字典。——用修饰器:@app.context_processor
    传递的可以是一个变量,也可以是一个函数
传递变量:

@app.context_processor
def inject_user():
return dict(user = g.user)

传递函数:

@app.context_processor
def utility_processor(): # 处理货币转换的一个方法
def format_price(amount, currency = u'$'):
return u'{0:.2f}{1}'.format(amount, currency)
return dict(format_price = format_price)

上面的例子把format_price函数传递给所有模板,可以在模板中随意调用

{{ format_price(0.33) }}

Flask模板_学习笔记的更多相关文章

  1. 测试Flask应用_学习笔记

    源代码尽在我的github上面:https://github.com/521xueweihan 欢迎大家交流学习 """ setUp() 方法中会创建一个新的测试客户端并 ...

  2. NVelocity模板引擎学习笔记

    NVelocity模板引擎学习笔记 学习模板引擎有一段时间现在做一些总结

  3. 【笔记目录2】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总

    当前标签: ASP.NET Core快速入门 共2页: 上一页 1 2  任务27:Middleware管道介绍 GASA 2019-02-12 20:07 阅读:15 评论:0 任务26:dotne ...

  4. Volecity模板引擎学习笔记

    转自:https://blog.csdn.net/reggergdsg/article/details/50937433 最近项目中用到了volecity模板,这里做一下笔记,学习中...相比较 Fr ...

  5. python基础教程_学习笔记14:标准库:一些最爱——re

    标准库:一些最爱 re re模块包括对正則表達式的支持,由于以前系统学习过正則表達式,所以基础内容略过,直接看python对于正則表達式的支持. 正則表達式的学习,见<Mastering Reg ...

  6. jade模板引擎学习笔记(WebsStorm9.0.3+ nodejs+express+jade)

    jade环境搭建 jade标签写法 jade注释 jade添加类名.id.属性 jade添加脚本,css jade变量 jade多行文本显示 jade流程代码:for,each,while jade流 ...

  7. python基础教程_学习笔记12:充电时刻——模块

    充电时刻--模块 python的标准安装包含一组模块,称为标准库. 模块 >>> import math >>> math.sin(0) 0.0 模块是程序 不论什 ...

  8. LCT模板(学习笔记)(洛谷3690)(加边,删边,修改点权)

    最近学习了一波LCT qwq 强势安利Flashhu的博客!!!!! 真的特别详细(可惜我不会弄链接) 如果有想要学习\(LCT\)的同学,可以直接看他的博客 我这里就简单写一点自己的体会啊. \(L ...

  9. python基础课程_学习笔记26:编程的乐趣

    编程的乐趣 编程柔术 当你坐下来,打算如何组织计划要定时,具体程序,然而,无论什么经验.在实现时间的函数的,你会逐渐学会了原来的设计,实用的新知识.我们不应该忽视沿途汲取的教训,相反,它们用于其他设计 ...

随机推荐

  1. .net core 1.0 实现负载多服务器单点登录

    前言 .net core 出来有一时间了,这段时间也一直在做技术准备,目前想做一个单点登录(SSO)系统,在这之前用.net时我用习惯了machineKey ,也顺手在.net core 中尝试了一上 ...

  2. Android Studio 导入so

    将so含文件夹整体copy入一个"lib"的文件夹,压缩,修改后缀为“.jar”,copy进lib目录即可 我最近刚刚好把工作环境从eclipse切换到android studio ...

  3. 用issnode+IIS来托管NodeJs Server

    用issnode+IIS来托管NodeJs Server之一:安装篇 用issnode+IIS来托管NodeJs Server之二:移植 用issnode+IIS来托管NodeJs Server之三: ...

  4. WPF下载远程文件,并显示进度条和百分比

    WPF下载远程文件,并显示进度条和百分比 1.xaml <ProgressBar HorizontalAlignment="Left" Height="10&quo ...

  5. android google 统计导致的文件冲突

    android studio 加入google 统计 1. buildscript { repositories { jcenter() } dependencies { classpath 'com ...

  6. 使用 T-SQL 计算当日日期、本周第一天与最后一天

    --当日日期 ); SET @Today = DATENAME(YEAR, GETDATE()) + '-' + DATENAME(MONTH, GETDATE()) + '-' + DATENAME ...

  7. Intent用法简介

    Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递.通过其自带的属性,其实可以方便的完成很多较为复杂的操作.例如直接调用拨号功能.直接自动调用合适的程序打开不同类型的 ...

  8. 查看JAVA进程中哪个线程CPU消耗最高

    一,在centos linux 上查看进程占用cpu过高 top  shift+h 查看哪个进程程消耗最高     二,查看JAVA进程中哪个线程消耗最高   2.1 导出java运行的线程信息   ...

  9. 读写文本(.txt)文件 .NET

    http://www.cnblogs.com/jx270/archive/2013/04/14/3020456.html (一) 读取文件 如果你要读取的文件内容不是很多,可以使用 File.Read ...

  10. shell编程总结

    一.学习 shell脚本之前的基础知识 [linux shell中的特殊符号] 1. * :代表零个或多个字符或数字. test后面可以没有任何字符,也可以有多个字符,总之有或没有都能匹配出来. 2. ...