flask框架自定义过滤器示例【markdown文件读取和展示功能】


Posted in Python onNovember 08, 2019

本文实例讲述了flask框架自定义过滤器。分享给大家供大家参考,具体如下:

除了一些内置的join length safe等过滤器外, flask还提供了自定义过滤器的功能.

一. 自定义一个mardown过滤器

自定义一个markdown过滤器, 使过滤器可以像safe解析html标签一样解析md语法.

  • 安装库
pip install Markdown==2.3.1
  • 自定义过滤器

使用@app.template_filter(‘md')过滤器, 此时便拥有了名为md的过滤器.

@app.template_filter('md')
def markdown_to_html(txt):
  from markdown import markdown
  return markdown(txt)
  • 使用示例

views

@app.route('/', methods=['POST', 'GET'])
def index():
  return render_template('index.html', body='# hello')
  • 模板中直接使用
{{ body|md|safe }}

二. 添加读取文件的功能

读取md文件, 并输出到html中

  • 定义读文件函数
def read_md(filename):
  with open(filename) as md_file:
    content = reduce(lambda x, y: x+y, md_file.readline())
  return content.decode('utf-8')
  • 上下文管理器

此时read_md函数可以全局使用

@app.context_processor
def inject_methods():
  return dict(read_md=read_md)
  • 可以在模板中调用函数
{{ read_md('test.md')|md|safe}}

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

Python 相关文章推荐
Python实现测试磁盘性能的方法
Mar 12 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
Nov 11 Python
python使用TensorFlow进行图像处理的方法
Feb 28 Python
Python基础之循环语句用法示例【for、while循环】
Mar 23 Python
python实现的汉诺塔算法示例
Oct 23 Python
使用pandas的box_plot去除异常值
Dec 10 Python
python正则表达式匹配IP代码实例
Dec 28 Python
tensorflow实现在函数中用tf.Print输出中间值
Jan 21 Python
使用python无账号无限制获取企查查信息的实例代码
Apr 17 Python
tensorflow2.0的函数签名与图结构(推荐)
Apr 28 Python
Django models文件模型变更错误解决
May 11 Python
python中元组的用法整理
Jun 15 Python
Python通过递归获取目录下指定文件代码实例
Nov 07 #Python
Django REST framework 单元测试实例解析
Nov 07 #Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 #Python
Python操作SQLite/MySQL/LMDB数据库的方法
Nov 07 #Python
Flask框架路由和视图用法实例分析
Nov 07 #Python
Python 切分数组实例解析
Nov 07 #Python
Django 简单实现分页与搜索功能的示例代码
Nov 07 #Python
You might like
利用js调用后台php进行数据处理原码
2006/10/09 PHP
PHP动态柱状图实现方法
2015/03/30 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
Vue数组响应式操作及高阶函数使用代码详解
2020/08/01 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
python 中文乱码问题深入分析
2011/03/13 Python
python中引用与复制用法实例分析
2015/06/04 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
通过python 执行 nohup 不生效的解决
2020/04/16 Python
查看jupyter notebook每个单元格运行时间实例
2020/04/22 Python
python xlsxwriter模块的使用
2020/12/24 Python
个性化皮包、小袋、生活配件:Mon Purse
2019/03/26 全球购物
教学评估实施方案
2014/03/16 职场文书
公司业务员岗位职责
2014/03/18 职场文书
论文诚信承诺书
2014/05/23 职场文书
学校运动会广播稿范文
2014/10/02 职场文书
综合管理员岗位职责
2015/02/11 职场文书
项目安全员岗位职责
2015/02/15 职场文书
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers
解决vue自定义组件@click点击失效问题
2022/04/30 Vue.js
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js