首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用app.server.route下载数据时出现奇怪的错误:文件名未更新

使用app.server.route下载数据时出现奇怪的错误:文件名未更新
EN

Stack Overflow用户
提问于 2019-04-11 03:01:30
回答 1查看 368关注 0票数 0

这是一个非常奇怪的绘图破折号错误:下载的文件不会更新,即使源代码发生了变化。我使用的是Mac,在使用chrome或firefox时发现了这个错误,但使用safari时它可以正常工作。问题是,下载的文件在代码更新后不会更改。

代码语言:javascript
复制
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import numpy as np
import flask
import io


from dash.dependencies import Input, Output, State
# import plotly.graph_objs as go

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

app.layout = html.Div([
    dcc.Dropdown(
        id='dropdown',
        options=[
            {'label': 'New York City', 'value': 'NYC'},
            {'label': 'Montreal', 'value': 'MTL'},
            {'label': 'San Francisco', 'value': 'SF'}
        ],
        value='NYC'
    ),
    html.A('Download',
            id='download',
            href=''),
    # dcc.Store(id='data_store',storage_type='memory'),
])


# Calculate the data and store it.
@app.callback(
    Output('download', 'href'),
    [Input('dropdown', 'value')])
def update(value):

    return '/download_csv/get_it?value={}'.format(value)

@app.server.route('/download_csv/get_it')
def download_excel():

    param = flask.request.args
    print(param)


    # Dummy dataframe for downloading.
    d = {'col1': param['value'],'col2': 'Did it change?'}
    df = pd.DataFrame(data=d,index=[0])

    #Convert DF
    str_io = io.StringIO()
    df.to_csv(str_io, sep=",")

    mem = io.BytesIO()
    mem.write(str_io.getvalue().encode('utf-8'))
    mem.seek(0)
    str_io.close()

    return flask.send_file(mem,
                       mimetype='text/csv',
                       attachment_filename='downloadFile.csv',
                       as_attachment=True)


if __name__ == '__main__':
    app.run_server(debug=True)

但是,当使用chrome时,如果attachment_filename更改为'donwloadFile_new.csv‘并再次按下download按钮,我仍然会得到'donwloadFile.csv’作为下载文件!

EN

回答 1

Stack Overflow用户

发布于 2019-04-11 04:01:45

我刚刚回答了一个类似的问题,here

需要在send_file函数中指定cache_timeout参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55619614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档