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 datetime时间格式化去掉前导0
Jul 31 Python
仅用50行代码实现一个Python编写的计算器的教程
Apr 17 Python
在Python的列表中利用remove()方法删除元素的教程
May 21 Python
python操作mysql数据库
Mar 05 Python
Python书单 不将就
Jul 11 Python
Python文件和流(实例讲解)
Sep 12 Python
详解Python中如何写控制台进度条的整理
Mar 07 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
Jun 24 Python
python web框架中实现原生分页
Sep 08 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
让文件路径提取变得更简单的Python Path库
May 27 Python
梳理总结Python开发中需要摒弃的18个坏习惯
Jan 22 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
点评山进PR-D3L三波段收音机
2021/03/02 无线电
用PHP制作静态网站的模板框架
2006/10/09 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
2014/05/19 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
PHP扩展类型及安装方式解析
2020/04/27 PHP
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
2016/06/21 Javascript
Node.js中使用jQuery的做法
2016/08/17 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
angular.js 路由及页面传参示例
2017/02/24 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
JS查找英文文章中出现频率最高的单词
2017/03/20 Javascript
ES6扩展运算符的用途实例详解
2017/08/20 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
零基础学Python(一)Python环境安装
2014/08/20 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
Python 元组拆包示例(Tuple Unpacking)
2019/12/24 Python
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
办公室文秘自我评价
2013/09/21 职场文书
好邻里事迹材料
2014/01/16 职场文书
21岁生日感言
2014/02/27 职场文书
党的群众路线学习材料
2014/05/16 职场文书
校园绿化美化方案
2014/06/08 职场文书
公司委托书怎么写
2014/08/02 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
python 离散点图画法的实现
2022/04/01 Python