学习笔记|Django开发|开发过程中遇到的一些问题和解决方案(不定期更新...)

本文记录了在Django项目中遇到的下载文件显示问题及其解决方案,包括`escape_url_path`和`urlquote`的使用。此外,介绍了文件上传路径设置,下载文件路径配置,以及如何在Django中获取满足多个条件的数据对象,涉及`Q`对象和字典查询方法。
摘要由CSDN通过智能技术生成

最近学习了Django,并且还自己做了个教学资源管理系统,感兴趣的朋友可以访问项目的github

在看学习视频或教程的时候只是学了一些基本功能,然后在实现一个比较大的项目过程中还是有很多坑的,在此专门花一些时间记录一下学习过程中遇到的坑和搜索到的解决方案,这样以后能及时查找对应的解决方案。

一、下载文件不显示文件名的问题(只显示“下载”两个字而不是实际文件名)

我找了两种解决方案

1、使用escape_url_path

比如你要下载一个excel文件,可以使用下面的方法

from django.utils.encoding import escape_uri_path

response = HttpResponse()
response['Content-Type'] = 'application/vnd.ms-excel'
response['Content-Disposition'] = "attachment; filename*=utf-8''{}".format(escape_uri_path(file_name))

但是这个方法在下载其他格式的文件的时候就不顶用了…

2、使用urlquote

这个方法可以用于多种格式的文件下载,反正我试了好几种格式都没啥问题

from django.utils.http import urlquote

file = open(file_path, 'rb')
response = FileResponse(file)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值