<script type="text/javascript">/* csv_list: 從 django 索引函數(shù) (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> 顯示報(bào)價(jià)的 html 代碼時(shí)出錯(cuò) 顯示報(bào)價(jià)的 html 代碼時(shí)出錯(cuò) 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貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
首先,使用適當(dāng)?shù)臄?shù)據(jù)交換格式(即 JSON)在 Python 和 Javascript 之間傳遞數(shù)據(jù),而不是依賴于語(yǔ)法之間的相似性。
其次,您需要在模板中將您的數(shù)據(jù)標(biāo)記為安全以避免自動(dòng)轉(zhuǎn)義。所以:
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 中生成這個(gè) CSV,而不是允許用戶直接從后端下載它作為文件。
添加回答
舉報(bào)
0/150
提交
取消