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 相关文章推荐
5个很好的Python面试题问题答案及分析
Jan 19 Python
基于python3 OpenCV3实现静态图片人脸识别
May 25 Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 Python
python实现顺时针打印矩阵
Mar 02 Python
python 计算一个字符串中所有数字的和实例
Jun 11 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
Jul 04 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
Jul 09 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
Django如何实现网站注册用户邮箱验证功能
Aug 14 Python
Python实现微信机器人的方法
Sep 06 Python
简单瞅瞅Python vars()内置函数的实现
Sep 27 Python
Pycharm连接远程服务器并远程调试的全过程
Jun 24 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
桌面中心(四)数据显示
2006/10/09 PHP
一个php作的文本留言本的例子(四)
2006/10/09 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
php选择排序法实现数组排序实例分析
2015/02/16 PHP
PHP pear安装配置教程
2016/05/14 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
PHP命名空间定义与用法实例分析
2019/08/14 PHP
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
Js冒泡事件详解及阻止示例
2014/03/21 Javascript
JavaScript中string转换成number介绍
2014/12/31 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
JS实现根据文件字节数返回文件大小的方法
2016/08/02 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
2018/01/08 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
python 专题九 Mysql数据库编程基础知识
2017/03/16 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
python代码实现猜拳小游戏
2020/11/30 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
活动总结格式范文
2014/04/26 职场文书
普通话演讲稿
2014/09/03 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
工程部岗位职责
2015/02/10 职场文书