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实现对PPT文件进行截图操作的方法
Apr 28 Python
Python中的heapq模块源码详析
Jan 08 Python
python 将对象设置为可迭代的两种实现方法
Jan 21 Python
树莓派+摄像头实现对移动物体的检测
Jun 22 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
Aug 20 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
Oct 06 Python
pandas分组聚合详解
Apr 10 Python
pyinstaller将含有多个py文件的python程序做成exe
Apr 29 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
May 07 Python
Python 处理日期时间的Arrow库使用
Aug 18 Python
基于PyQt5制作一个群发邮件工具
Apr 08 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
php获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
PHP编程实现csv文件导入mysql数据库的方法
2017/04/29 PHP
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
2017/05/03 Javascript
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
2017/08/04 jQuery
Angular4开发解决跨域问题详解
2017/08/28 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
vue 巧用过渡效果(小结)
2018/09/22 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
微信小程序如何使用globalData的方法
2019/06/06 Javascript
python解析xml文件实例分享
2013/12/04 Python
Python中你应该知道的一些内置函数
2017/03/31 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
python类的实例化问题解决
2019/08/31 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
2020/06/30 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
Yves Rocher伊夫·黎雪美国官网:法国始创植物美肌1959
2019/01/09 全球购物
会计大学生职业生涯规划书范文
2014/01/13 职场文书
党性观念心得体会
2014/09/03 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
公诉意见书范文
2015/06/05 职场文书
大队委员竞选稿
2015/11/20 职场文书
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
一文搞懂MySQL索引页结构
2022/02/28 MySQL