查了很多文档,flask的过滤器其实就和tp框架的自定义函数是一样东西,就是操作起来比原来thinkphp框架麻烦些,首先框架没有一个提前定义好的自定义函数库,在这里暂时称为自定义函数模块吧。再则写了一个自定义过滤器模块他也不能自动挂载,需要我们导入下,下面就直接上代码吧,最新版的flask,还在不断的踩坑中
首先我们在独立的模块下面创建一个common.py来写自定义过滤器的一些方法,内容如下:
#!/usr/bin/env/python3
#coding:utf-8
__author__ = 'yang.su'
from flask import Flask
import time
app = Flask(__name__)
def formatTime(txt):
timearray = time.localtime(txt)
result = time.strftime("%Y-%m-%d %H:%M:%S", timearray)
return result然后我们去子模块中导入这个模块的函数
from advtools.common import formatTime
这里的advtools是一个目录,之前说了的,因为目录下面创建了一个__init__.py,那么这个就变成一个模块
我们导入之前的formatTime方法
还要导入jijia2的模版模块
import jinja2
最后将自定义过滤器添加到jijia2模块中并重新定义一个名字
jinja2.filters.FILTERS['format_time'] = formatTime
最后我们去模版文件中,找到需要转换或者处理的数据
{{ p.timestamp }}
改为
{{ p.timestamp | format_time }}我我整段代码都复制上来供大家参考下
模型代码
#!/usr/bin/python3
#coding:utf-8
__author__ = 'yang.su'
from flask import Flask,Blueprint,render_template,url_for,request,jsonify
from pymongo import MongoClient
from advtools.common import formatTime
import urllib.request as rq
import json
import jinja2
app = Flask(__name__)
app.config.from_pyfile('../settings.py')
fptools = Blueprint('advtools', __name__, url_prefix='/pt')
jinja2.filters.FILTERS['format_time'] = formatTime
@fptools.route('/serby')
def serby():
client = MongoClient(host=app.config.get('HOST'), port=app.config.get('MONGO_PORT'))
db = client[app.config.get('MONGODB_NAME')]
coll = db['man']
result = coll.find({ "id":{ "$gte": 0} })
return render_template('serby.htidml', serby=result)过滤器代码
#!/usr/bin/python3
#coding:utf-8
__author__ = 'yang.su'
from flask import Flask
import time
app = Flask(__name__)
def formatTime(txt):
timearray = time.localtime(txt)
result = time.strftime("%Y-%m-%d %H:%M:%S", timearray)
return result模版代码
{% for p in serby %}
<tr>
<td>{{ p.camera_id }}</td>
<td>{{ p.quality | round(2, 'floor') }}</td>
<td><a class="layui-badge layui-bg-cyan" href="javascript:;" title="">查看</a> <a class="layui-badge layui-bg-cyan" href="javascript:;" title="">查看</a></td>
<td>{{ p.picture_md5 }}</td>
<td>{{ p.timestamp | format_time }}</td>
</tr>
{% endfor %}内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/548
评论列表