django和html实现文件的下载

前端 test.html

<!DOCTYPE html>
<html>
<head>
    <title>Download Example</title>
</head>
<body>
    <h2>Click the button to download a file:</h2>
    <a href="{% url 'download' id='13' %}" class="btn btn-primary">Download File</a>
    <a href="{% url 'download' id=i.id %}"><button class="btn btn-success">下载语料</button></a>
    <a href="/download/{{ i.id }}"><button class="btn btn-success">下载语料</button></a>
</body>
</html>

后端

def download_yuliao(request,id):
    print('here3', os.getcwd())
    filename = DB_yuliao.objects.filter(id=id)[0].filename
    file_path = os.path.join(settings.YULIAO_ROOT, filename)
    file = open(file_path, 'rb')  # 打开文件
    response = HttpResponse(FileWrapper(file), content_type='application/octet-stream')
    response['Content-Disposition'] = 'attachment; filename="{}"'.format(filename).encode('utf-8', 'ISO-8859-1') # 为汉字时也支持
    return response

url

path('download/<str:id>/', download, name='download'),
path('test/',test)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值