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实现检测服务器是否可以ping通的2种方法
Jan 01 Python
用Python的SimPy库简化复杂的编程模型的介绍
Apr 13 Python
介绍Python的Django框架中的静态资源管理器django-pipeline
Apr 25 Python
Python字符串转换成浮点数函数分享
Jul 24 Python
python数组过滤实现方法
Jul 27 Python
Python开发的HTTP库requests详解
Aug 29 Python
pandas 使用均值填充缺失值列的小技巧分享
Jul 04 Python
TensorFlow索引与切片的实现方法
Nov 20 Python
在Django中预防CSRF攻击的操作
Mar 13 Python
Python flask框架如何显示图像到web页面
Jun 03 Python
Python判断字符串是否为合法标示符操作
Sep 03 Python
Python安装使用Scrapy框架
Apr 12 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统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
Angular实现表单验证功能
2017/11/13 Javascript
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
JS实现随机生成10个手机号的方法示例
2018/12/07 Javascript
JS中数据结构之栈
2019/01/01 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
[05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
2016/08/02 DOTA
利用Python和OpenCV库将URL转换为OpenCV格式的方法
2015/03/27 Python
详解Python中类的定义与使用
2017/04/11 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
详解CSS 3 中的 calc() 方法
2018/01/12 HTML / CSS
蔻驰美国官网:COACH美国
2016/08/18 全球购物
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
工伤事故赔偿协议书
2014/10/27 职场文书
费城故事观后感
2015/06/10 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
感谢信
2019/04/11 职场文书