Javascript 如何使用js或jquery在django中单击按钮将文件从服务器下载到客户端

Javascript 如何使用js或jquery在django中单击按钮将文件从服务器下载到客户端,javascript,django,Javascript,Django,在这里,我用Html发送我想要下载的测试用例,点击下载按钮,点击views.py中的tcgsave保存方法,然后检查请求是否来自下载按钮,然后执行它 HTML url.py 在视图中,我创建文件并将该文件移动到.tar文件夹中,以便在服务器端下载,方法是在客户端发送tar_file_path变量中的文件路径,即html页面 views.py 当点击下载按钮时,它给我错误 找不到页面404 请求方法:获取 请求URL:/root/ivenv/test\u case\u tool/docs/newP

在这里,我用Html发送我想要下载的测试用例,点击下载按钮,点击views.py中的tcgsave保存方法,然后检查请求是否来自下载按钮,然后执行它

HTML

url.py

在视图中,我创建文件并将该文件移动到.tar文件夹中,以便在服务器端下载,方法是在客户端发送tar_file_path变量中的文件路径,即html页面 views.py

当点击下载按钮时,它给我错误

找不到页面404 请求方法:获取
请求URL:/root/ivenv/test\u case\u tool/docs/newProjectFoldr.tar

显然,Django不知道URL:/root/ivenv/test\u case\u tool/docs/newProjectFoldr.tar在哪里。所以你得到了一个404错误没有找到

您可以在urls.py中编写相应的url,或将文件放入STATIC_ROOT folder查看您的settings.py,添加STATIC_ROOT='STATIC'和STATIC_url='STATIC/',如果没有,则可以访问

将文件放在appname/static/folder中,当settings.py中的DEBUG=True时,Django将自动找到它

访问{STATIC_URL}}/newProjectFoldr.tar下载该文件。 部署时,运行python manage.py collectstatic将静态文件收集到static_根文件夹,当DEBUG=False django不为静态文件提供服务器时,可以使用Apache

{% for testcase in testcase_object_array %}

                <form action="/tcgsave/" method="post">{% csrf_token %}         
                <input type="checkbox" name="name_testcase" id="testcase_id" class ="multiValueChek" value="{{ testcase.id }}"/>{{ testcase.name }}<br />
        {% endfor %}



<button style="width:70px;" class="btn btn-primary" value=" Edit" id="editbtn_id" name="editbtn_id" type="submit"> Edit </button>
<button style="width:70px;" class="btn btn-primary" value="download_btn" id="download_btn" name="download_btn" type="submit" onClick="window.location.href='{{tar_file_path}}> Download </button>
</form>
$("#download_btn").click(function(){
       var cnt=0;
       var checkbox_value = "";
       $(":checkbox").each(function () {
          var ischecked = $(this).is(":checked");
          if (ischecked){
                checkbox_value += $(this).val();
                //alert(checkbox_value);
                $("#testid_checked").val(checkbox_value);
                cnt=cnt + 1 ;
          }
        });



        if(cnt==0){ 

        alert("Please select one Test case");
            return false;


        } 
            else
            {


            return true;
            }

});
url(r'^tcgsave/', 'apps.tcg.views.tcgsave', name='tcgsave')
def tcgsave(request):
    if request.POST.get('download_btn'):
        with open(Folderpath+'/'+testcase_name+'.java',"w") as f:          
            f.write("package "+inputpackage+";")
            f.write("\n\n"+lines)
            f.write(testcaseSummary)
            f.write("\n @testsummary")
            f.write("\n <pre>"+testcaseSummary+"</pre> \n\n")

        os.chdir("/root/ivenv/test_case_tool/docs/")
        tar = tarfile.open(folderName+".tar", "w")
        tar.add(folderName,arcname=os.path.basename(folderName))
        tar_file_path = "/root/ivenv/test_case_tool/docs/"+folderName+".tar"

    return render_to_response('tcgform.html','tar_file_path':tar_file_path,'testcase_object_array':pass_testcase_object_array},context_instance=RequestContext(request))