我试图解决这个问题一个星期了,但找不到合适的解决方案。 我有一个搜索栏来输入基因ID(或者上传文件)。然后它查询数据库并返回这些基因之间的相互作用。我们在html页面上的矩阵中显示这些交互。 (我基本上返回一个python数组)。
现在我想包含一个导出按钮,用于在csv或文本文件中下载矩阵/表格,以便用户可以对其进行操作以进行进一步研究。
如何在不保存文件中的每个查询结果的情况下执行此操作? 因为在返回矩阵之后,python脚本(views.py)已经运行并且基因ID已经消失。
可以用jQuery完成吗?
非常感谢你的帮助。
答案 0 :(得分:0)
您只需要提供一个包含当前网址和一个标记的链接,以表明它是下载csv请求而不是呈现页面请求:
def return_result(request):
# your original query
query = request.GET.get('id', None)
if query:
results = Model.objects.filter(field=query)
response = request.GET.get('download', None)
if response == 'csv':
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="somefilename.csv"'
# create a csv
return response
else:
context = {'results': results}
return render(request, 'results.html', context)
在您的页面中,您创建了一个下载csv的链接,{{ request.get_full_path }}
是从请求中获取当前网址:
<a href="{{ request.get_full_path }}&download=csv">Download as CSV</a>