经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » Markdown » 查看文章
flask框架自定义过滤器示例【markdown文件读取和展示功能】
来源:jb51  时间:2019/11/8 12:12:50  对本文有异议

本文实例讲述了flask框架自定义过滤器。分享给大家供大家参考,具体如下:

除了一些内置的join length safe等过滤器外, flask还提供了自定义过滤器的功能.

一. 自定义一个mardown过滤器

自定义一个markdown过滤器, 使过滤器可以像safe解析html标签一样解析md语法.

  • 安装库
  1. pip install Markdown==2.3.1
  • 自定义过滤器

使用@app.template_filter(‘md')过滤器, 此时便拥有了名为md的过滤器.

  1. @app.template_filter('md')
  2. def markdown_to_html(txt):
  3. from markdown import markdown
  4. return markdown(txt)
  5.  
  • 使用示例

views

  1. @app.route('/', methods=['POST', 'GET'])
  2. def index():
  3. return render_template('index.html', body='# hello')
  4.  
  • 模板中直接使用
  1. {{ body|md|safe }}
  2.  

二. 添加读取文件的功能

读取md文件, 并输出到html中

  • 定义读文件函数
  1. def read_md(filename):
  2. with open(filename) as md_file:
  3. content = reduce(lambda x, y: x+y, md_file.readline())
  4. return content.decode('utf-8')
  5.  
  • 上下文管理器

此时read_md函数可以全局使用

  1. @app.context_processor
  2. def inject_methods():
  3. return dict(read_md=read_md)
  4.  
  • 可以在模板中调用函数
  1. {{ read_md('test.md')|md|safe}}
  2.  

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号