Generating word docs with Flask?

flask, python, python-docx

Solution

instead of `render_template('index.html')` you can just:

from flask import Flask, render_template, send_file
from docx import Document
from cStringIO import StringIO

@app.route('/')
def index():
    document = Document()
    document.add_heading("Sample Press Release", 0)
    f = StringIO()
    document.save(f)
    length = f.tell()
    f.seek(0)
    return send_file(f, as_attachment=True, attachment_filename='report.doc')

Problem

I'm trying to spin up a single page flask application that allows users to download a word document. I've already figured out how to make/save the document using python-docx, but now I need to make the document available in the response. Any ideas? Here's what I have so far: ``` from flask import Flask, render_template from docx import Document from cStringIO import StringIO @app.route('/') def index(): document = Document() document.add_heading("Sample Press Release", 0) f = StringIO() document.save(f) length = f.tell() f.seek(0) return render_template('index.html') ```

Original source

Related problems