zoukankan      html  css  js  c++  java
  • flask中模板日期格式控制和jinja2中模板格式控制

    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应用的模板中直接使用自定义的筛选函数。

        

                 

               

     

      

  • 相关阅读:
    Sql Server 2008卸载后再次安装一直报错
    listbox 报错 Cannot have multiple items selected when the SelectionMode is Single.
    Sql Server 2008修改Sa密码
    学习正则表达式
    Sql Server 查询第30条数据到第40条记录数
    Sql Server 复制表
    Sql 常见面试题
    Sql Server 简单查询 异步服务器更新语句
    jQuery stop()用法以及案例展示
    CSS3打造不断旋转的CD封面
  • 原文地址:https://www.cnblogs.com/baoyiluo/p/3303019.html
Copyright © 2011-2022 走看看