@xxx_blueprint.route("/file", methods=["GET"])
def group_trend():
def generate():
data = StringIO()
w = csv.writer(data)
titles = ["v1", "v2", "v3"]
titles[0] = codecs.BOM_UTF8.decode("utf8") + codecs.BOM_UTF8.decode() + titles[0] ## 不加此行,中文乱码!!!!
w.writerow(titles)
for item in [[1, 2, 3], [4, 5, 6]]:
w.writerow(item)
yield data.getvalue()
data.seek(0)
data.truncate(0)
response = Response(stream_with_context(generate()), mimetype='text/csv')
response.headers.set("Content-Disposition",
"attachment", filename="{}_{}.csv".format(file_type, dt).encode("UTF_8"), charset="UTF_8")
response.headers["Content-Type"] = "application/octet-stream; " #字节流类型
return response