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 相关文章推荐
windows下python模拟鼠标点击和键盘输示例
Feb 28 Python
python实现在windows服务中新建进程的方法
Jun 30 Python
Python json 错误xx is not JSON serializable解决办法
Mar 15 Python
基于python的多进程共享变量正确打开方式
Apr 28 Python
transform python环境快速配置方法
Sep 27 Python
python利用Opencv实现人脸识别功能
Apr 25 Python
介绍一款python类型检查工具pyright(推荐)
Jul 03 Python
python KNN算法实现鸢尾花数据集分类
Oct 24 Python
解决python gdal投影坐标系转换的问题
Jan 17 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
Apr 02 Python
Python实现曲线拟合的最小二乘法
Feb 19 Python
Python加密与解密模块hashlib与hmac
Jun 05 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中最容易忘记的一些知识点总结
2013/04/28 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
jQuery 判断元素上是否绑定了事件
2009/10/28 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
基于vue中keep-alive缓存问题的解决方法
2018/09/21 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
python计算日期之间的放假日期
2018/06/05 Python
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
html2 canvas生成清晰的图片实现打印功能
2019/09/23 HTML / CSS
HTML5 图片预加载的示例代码
2020/03/25 HTML / CSS
FC-Moto西班牙:摩托车手最大的购物场所之一
2019/04/11 全球购物
皮肤科医师岗位职责
2013/12/04 职场文书
房地产融资计划书
2014/01/10 职场文书
小班评语大全
2014/05/04 职场文书
安全生产大检查方案
2014/05/07 职场文书
业务员年终工作总结2015
2015/05/28 职场文书
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS
Mysql binlog日志文件过大的解决
2021/10/05 MySQL