flask使用jinja2模块将文章导出为markdown文档

  • 2025-04-21 12:30:34
  • 开发
  • 21
  • shevechco

因为我们文章里面都含有代码,所以导出成word或者pdf不是很方便进行代码的复制,所以在使用中,将文章导出成markdown文档方便后续离线使用。

使用方法很简单,代码如下:

from jinja2 import Template

def post_export(): id = request.args.get("id") try: post = BPost.get_by_id(int(id)) template_str = """# {{ title }} {{ content }} """ content = post.content.replace("/static/upload/", request.url_root+"static/upload/") data = { "title": post.title, "content": content} template = Template(template_str) markdown_content = template.render(data) bio = io.BytesIO(markdown_content.encode("utf-8")) except Exception as e: current_app.logger.error("导出文章到 markdown 报错, {}".format(e)) abort(500) return send_file(bio, mimetype="text/md", as_attachment=True, download_name="{}.md".format(post.id))

我们这里使用Template类,然后使用render方法渲染数据到markdown,实际markdown也是一种text文本类型。

我们将渲染的数据通过io模块存储在内存中,最后使用flask中的send_file方法发送到前台即可。

注意as_attachment参数必为true,如果不设置或者为false的话,会在浏览器直接显示markdown文本。

202504211237285001265521.png

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.sulao.cn/post/1029

相关推荐