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爬虫入门教程之糗百图片爬虫代码分享
Sep 02 Python
Python函数嵌套实例
Sep 23 Python
Python数据结构之翻转链表
Feb 25 Python
浅谈python中列表、字符串、字典的常用操作
Sep 19 Python
Python2/3中urllib库的一些常见用法
Dec 19 Python
Python实现获取前100组勾股数的方法示例
May 04 Python
和孩子一起学习python之变量命名规则
May 27 Python
基于python实现聊天室程序
Jul 27 Python
基于python实现判断字符串是否数字算法
Jul 10 Python
python简单利用字典破解zip文件口令
Sep 07 Python
python爬取抖音视频的实例分析
Jan 19 Python
python基础学习之生成器与文件系统知识总结
May 25 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 网络开发详解之远程文件包含漏洞
2010/04/25 PHP
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
深入PHP autoload机制的详解
2013/06/09 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
seajs1.3.0源码解析之module依赖有序加载
2012/11/07 Javascript
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
基于vue-upload-component封装一个图片上传组件的示例
2018/10/16 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
使用 Opentype.js 生成字体子集的实例代码详解
2020/05/25 Javascript
理解Python中的With语句
2015/02/02 Python
关于Python中异常(Exception)的汇总
2017/01/18 Python
python文件特定行插入和替换实例详解
2017/07/12 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
remote接口和home接口主要作用
2013/05/15 面试题
海飞丝广告词
2014/03/20 职场文书
机械专业应届毕业生自荐书
2014/06/12 职场文书
英语系本科生求职信
2014/07/15 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
作息时间调整通知
2015/04/22 职场文书
2015年全国保险公众宣传日活动方案
2015/05/06 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书