Following code snippet shows how to implement downloading a file with flask.
def index(): strIO = StringIO.StringIO() strIO.write('Hello from Dan Jacob and Stephane Wirtel !') strIO.seek(0) return send_file(strIO, attachment_filename="testing.txt", as_attachment=True)
In case you need to use the snippet to support downloading a file which is stored as BLOB originally and to convert it as a downloadable file stream on the fly, then you can use io.BytesIO. See the below:
Let’s say exampleModel is the Sqlalchemy model object and blobField is a blob field which stores blob binary data,
buffer = io.BytesIO(exampleModel.blobField)
buffer.seek(0) // You don’t need this
return send_file(buffer, attachment_filename=filename)