I believe that you can update this by adding URL parameters to the href
property of your html.A
component.
For example:
@app.callback(Output('my-link', 'href'), [Input('my-dropdown', 'value')])
def update_link(value):
return '/dash/urlToDownload?value={}'.format(value)
@app.server.route('/dash/urlToDownload')
def download_csv():
value = flask.request.args.get('value')
# create a dynamic csv or file here using `StringIO`
# (instead of writing to the file system)
strIO = StringIO.StringIO()
strIO.write('You have selected {}'.format(value))
strIO.seek(0)
return send_file(strIO,
mimetype='text/csv',
attachment_filename='downloadFile.csv',
as_attachment=True)
but of course, if your file is small, you can just fill out the href
property directly as in Download raw data - #8 by chriddyp without doing this in a @server.route
.