我正在使用GUI,其中有一个按钮。单击按钮时,会发生一个ajax调用,它会在Django的view.py中向后端返回一个JSON。在JSON的基础上,我正在创建一个excel文件,并将此文件的路径返回到发生ajax调用的位置。我希望点击同一个按钮下载该文件。
即,是否可以通过单击该按钮进行所有这些操作(从ajax调用下载excel文件)?
edit
Path表示文件系统的物理路径。
答案 0 :(得分:0)
是的,可以这样做。只需确保文件是从STATIC_URL位置提供的(默认情况下为' static'文件夹)。在views.py中,
def download(request):
# /static/ is your STATIC_URL in settings
file_path = "/static/xxxx.txt" # file path
return JsonResponse({"file_path": file_path})
在你的ajax代码中,
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.status == 200) {
window.location = this.file_path;
}
};
xhttp.open("GET", "/download", true);
xhttp.send();