1. 首先增加html点击的button
<button class="btn btn-sm btn-primary" type="button" onclick="result_export()"
id="export"><i class="fa fa-file-text-o"></i> 结果导出</button>
2. js相应点击事件
function result_export() {
var param1 = "1"; #参数1, 非必需
var param2 = "2"; #参数2, 非必需
var url = "http://IP?XX"; #请求的url
#url拼接 请求参数 , 非必需
url += "?param1=" + param1 + "¶m2=" + param2;
var a = $("<a href='" + url + "'>download</a>").get(0);
var e = document.createEvent('MouseEvents');
e.initEvent('click', true, true);
a.dispatchEvent(e);
}
3. python后端
import csv, os, re
from io import StringIO
def csv_export():
param1 = get_parameter("param1") #前端传过来的,非必需
param2 = get_parameter("param2") #前端传过来的,非必需
result = [] #根据条件匹配到的list
return download_csv(result)
def download_csv(result):
user_data = [['param1', 'param2']]
for one in result:
user_data.append([one.get("param1"), one.get("param2")])
def generate():
data = StringIO()
w = csv.writer(data)
for i in user_data:
w.writerow(i)
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="result.csv")
return response
到这里就可以愉快的导出csv了