flask框架自定义过滤器示例【markdown文件读取和展示功能】

yipeiwu_com7年前Python基础

本文实例讲述了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第三方库h5py_读取mat文件并显示值的方法

mat数据格式是Matlab默认保存的数据格式。在Python中,我们可以使用h5py库来读取mat文件。 >>> import h5py >>>...

Python数据预处理之数据规范化(归一化)示例

Python数据预处理之数据规范化(归一化)示例

本文实例讲述了Python数据预处理之数据规范化。分享给大家供大家参考,具体如下: 数据规范化 为了消除指标之间的量纲和取值范围差异的影响,需要进行标准化(归一化)处理,将数据按照比例进...

Python综合应用名片管理系统案例详解

Python综合应用名片管理系统案例详解

本文实例讲述了Python综合应用名片管理系统。分享给大家供大家参考,具体如下: 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需...

python 提取key 为中文的json 串方法

示例: # -*- coding:utf-8 -*- import json strtest = {"中故宫":"好地方","天涯":"北京"} print strtest ###...

Numpy 将二维图像矩阵转换为一维向量的方法

以下的例子,将32x32的二维矩阵,装换成1x1024的向量 def image2vector (filename): returnVect=zeros((1,1024)) f=...