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

        

                 

               

     

      

  • 相关阅读:
    问题排查
    代码
    前端
    即时通信系统 偶尔看到 就想学着做一下
    Oracle 笔记
    javaweb dev 入
    mysql安装
    windows下安装nginx
    spring MVC上传附件
    mysql+mybatis递归调用
  • 原文地址:https://www.cnblogs.com/baoyiluo/p/3303019.html
Copyright © 2020-2023  润新知