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中的reduce内建函数使用方法指南
Aug 31 Python
Python脚本实现格式化css文件
Apr 08 Python
pygame学习笔记(6):完成一个简单的游戏
Apr 15 Python
分享Python文本生成二维码实例
Jan 06 Python
python使用xslt提取网页数据的方法
Feb 23 Python
基于python 处理中文路径的终极解决方法
Apr 12 Python
python selenium自动上传有赞单号的操作方法
Jul 05 Python
Python 最大概率法进行汉语切分的方法
Dec 14 Python
Python利用WMI实现ping命令的例子
Aug 14 Python
Python 实现数组相减示例
Dec 27 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
Apr 20 Python
Python3 如何开启自带http服务
May 18 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
全国FM电台频率大全 - 24 贵州省
2020/03/11 无线电
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
php实现XSS安全过滤的方法
2015/07/29 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
ThinkPHP 5.x远程命令执行漏洞复现
2019/09/23 PHP
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
[49:02]KG vs Infamous 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Python中的文件和目录操作实现代码
2011/03/13 Python
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
用python实现刷点击率的示例代码
2019/02/21 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
python安装scipy的方法步骤
2019/06/26 Python
Python 获取指定文件夹下的目录和文件的实现
2019/08/30 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
python 实现端口扫描工具
2020/12/18 Python
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
个人欠款协议书范本2014
2014/11/02 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
MySQL之MyISAM存储引擎的非聚簇索引详解
2022/03/03 MySQL