在Flask中发送JS文件

时间:2018-01-31 15:00:58

标签: python flask download

目前,我有一个静态JS文件,它在特定的api请求中返回给用户。处理此问题的代码如下

@app.route('/js/<path:path>')
def send_js(path):
    return send_from_directory('js', path)

但是,我想要做的是修改当前的JS文件(添加一些用户特定的修改),然后将其返回给用户。作为Java开发人员,我首先要读取文件,进行内存中修改并将这些字节写入响应对象。

但是,在尝试谷歌send_filesend_from_directory时,我找不到可以提供文件内容的方法吗?

我应该如何在烧瓶中实现这一点?

1 个答案:

答案 0 :(得分:0)

你可以使用StringIO。

@app.route('/js/<path:path>')
def send_js(path):
    path = secure_filename(path)
    with open(os.path.join("js", path), "rb") as fd:
        data = fd.read()
    #do stuff with data
    return send_file(StringIO(data), attachment_filename=path)

StringIO从字符串

创建类文件对象

导入如下:

from werkzeug.utils import secure_filename
try:
    from StringIO import StringIO
except ImportError:
from io import StringIO