为了账号安全,请及时绑定邮箱和手机立即绑定

试图从 javascript 中的 django 获取列表列表作为 csv 的数据

试图从 javascript 中的 django 获取列表列表作为 csv 的数据

慕斯王 2021-08-11 23:43:47
<script type="text/javascript">/* csv_list: 从 django 索引函数 (views.py) 得到的列表列表 eg:[['abc','1'],['xyz','0']] */    var data = {{csv_list}};    function genrate_csv() {        var csv = 'Tweet, Polarity\n';        data.forEach(function(row) {                csv += row.join(',');                csv += "\n";        });        console.log(csv);        var new_elm = document.createElement('a');        new_elm.href = 'data:text/csv;charset=utf-8,' + encodeURI(csv);        new_elm.target = '_blank';        new_elm.download = 'data.csv';        new_elm.click();    } </script>   显示报价的 html 代码时出错 显示报价的 html 代码时出错 django code: (views.py) def index(request):   if request.method=="POST" and request.POST.get('query') != "":     tweet_list =      script.tweets(request.POST.get('query'),request.POST.get('numtweets'))    pos,neg,net,csv_list = script.analysis(tweet_list)    context = {        'tweet_list' : tweet_list,        'csv_list' : csv_list,   #passed the list of list        't': len(tweet_list)    }    return render(request,"index.html",context)
查看完整描述

1 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

首先,使用适当的数据交换格式(即 JSON)在 Python 和 Javascript 之间传递数据,而不是依赖于语法之间的相似性。


其次,您需要在模板中将您的数据标记为安全以避免自动转义。所以:


context = {

    'tweet_list' : tweet_list,

    'csv_list' : json.dumps(csv_list),

    't': len(tweet_list)

}

return render(request,"index.html",context)

...


var data = JSON.parse('{{ csv_list|safe }}');

虽然我必须说总体上我不确定为什么要在 Javascript 中生成这个 CSV,而不是允许用户直接从后端下载它作为文件。


查看完整回答
反对 回复 2021-08-11
  • 1 回答
  • 0 关注
  • 181 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信