1.flask的模块语言采用的是jinja2,首先说一下jinja2中的模板格式控制的使用,即模板自定义filters的使用。

python的脚本如下(采用的是格式显示日期):

1 from jinja2 import Environment, PackageLoader
    2 import datetime
    3 env=Environment(loader=PackageLoader('app','templates'))
    4 def dateformat(value, format="%Y-%m"):
    5     return value.strftime(format)
    6 env.filters['dateformat'] = dateformat
    7 template=env.get_template('mytemplate.html')
    8 print template.render(date=datetime.date(1989,4,9))
    由脚本中jinja2的环境配置中可看出,对应此脚本同级的目录有个app/templates/mytemplate.html和__init__.py文件。

  mytemplate.html的文件内容如下:

<html>

<body>

<h1>当前时间{{date|dateformat("%Y-%m-%d")}}</h1>    //就是调用函数 dateformate(date,"%Y-%m-%d")|{{date|dateformat}}对应函数dateformat(value=date)

</body>

</html>

这样执行python脚本就可以自定义格式输出日期了。

2.下面说一下flask中自定义filters的使用。

摘自网络:

from jinja2.environment import Environment

environment = Environment()

environment.filters['datetimeformat'] = datetimeformat T

his creates a new environment that flask does not know about. You will have to attach it to the environment that flask uses:

app.jinja_env.filters['datetimeformat'] = datetimeformat

所以在flask应用中就不能采用上面的方式了。可采用下面的方式将自定义的filters添加到flask的环境变量中去:

from flask import Flask

   app = Flask(__name__)
    def datetimeformat(value, format="%Y-%m"):
         print value,type(value)
       return value.strftime(format)
    app.jinja_env.filters['datetimeformat'] = datetimeformat

------------------------------------------------------------------------------------------------------

当然最好自定义函数是从单独包含进来的如下:

import jinja_filters

          app =Flask(__name__)

          app.jinja_env.filters['filter_name1']= jinja_filters.filter_name1

          app.jinja_env.filters['filter_name2']= jinja_filters.filter_name2

这样可以直接在flask应用的模板中直接使用自定义的筛选函数。

最新文章

  1. windows下redis安装
  2. HTML标签理解
  3. VirtualBox-Linux系统安装增强功能
  4. magento 备份
  5. 【bzoj1059】矩形游戏
  6. redolog 大小的实验
  7. hdu5045:带权二分图匹配
  8. 继续畅通工程--hdu1879
  9. FTP下文件夹权限的设置755,766,777,644代表什么意思
  10. js获取时间和日期,字符串和时间戳之间的转换
  11. cocos2d-x on wp8架构简单介绍
  12. ajax问题
  13. Java数组的排序算法
  14. Java中Double保留后小数位的几种方法
  15. jQuery 事件绑定 和 JavaScript 原生事件绑定
  16. JVM调优入门之初探
  17. C# 显式转换关键字 explicit
  18. nodejs源码编译-mipse64el架构
  19. 【BZOJ5212】[ZJOI2018]历史(Link-Cut Tree)
  20. SpringMVC的请求处理流程

热门文章

  1. AutoIT:为文件夹下面的文件批量改名
  2. Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化
  3. C# 混淆 反编译
  4. poj 3243 Clever Y &amp;&amp; 1467: Pku3243 clever Y【扩展BSGS】
  5. Akka源码分析-Serialization
  6. LuoguP1063 能量项链【区间Dp】
  7. Java-String 类的常用方法
  8. _bzoj1008 [HNOI2008]越狱【计数】
  9. [ZPG TEST 105] 扑克游戏【Huffman】
  10. 模拟+贪心 SCU 4445 Right turn