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通过future处理并发问题
Oct 17 Python
Python语言描述连续子数组的最大和
Jan 04 Python
python爬虫爬取淘宝商品信息
Feb 23 Python
python实现微信小程序自动回复
Sep 10 Python
Python递归函数实例讲解
Feb 27 Python
python web框架中实现原生分页
Sep 08 Python
关于Pytorch MaxUnpool2d中size操作方式
Jan 03 Python
pytorch 实现查看网络中的参数
Jan 06 Python
OpenCV Python实现拼图小游戏
Mar 23 Python
浅谈keras中loss与val_loss的关系
Jun 22 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
Feb 22 Python
利用Selenium添加cookie实现自动登录的示例代码(fofa)
May 08 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循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
54个提高PHP程序运行效率的方法
2015/07/19 PHP
php中的登陆login实例代码
2016/06/20 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
js快速排序的实现代码
2013/12/08 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
2019/10/30 Javascript
vue实现带过渡效果的下拉菜单功能
2020/02/19 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
详解如何在Javascript中使用Object.freeze()
2020/10/18 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
2020/11/05 Javascript
[01:01:29]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第一场
2018/04/05 DOTA
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
Python引用(import)文件夹下的py文件的方法
2014/08/26 Python
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
linux环境下python中MySQLdb模块的安装方法
2017/06/16 Python
基于Django的ModelForm组件(详解)
2017/12/07 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
Python利用matplotlib做图中图及次坐标轴的实例
2019/07/08 Python
python实现拼图小游戏
2020/02/22 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
国贸专业毕业求职信
2014/06/11 职场文书
老龄工作先进事迹
2014/08/15 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
安全学习心得体会范文
2016/01/18 职场文书
5行Python代码实现一键批量扣图
2021/06/29 Python