python - Django 下载文件按钮采用路径
问题描述
我正在创建一个应用程序,允许用户将他们的 .ifc(3D 模型)文件转换为其他数据形式(.xlsx、过滤的 .xlsx、json)。我已经设法实现了上传部分,但现在我不确定下载。
我想创建一个“下载”按钮,该按钮包含用户所需的下载路径(甚至可能是文件名)。当我有路径时,我可以使用最后上传的文件启动我的转换功能。
def model_form_download(request):
if request.method == 'POST':
download_path = ??? #How to take in the user defined upload path?
last_model = Document.objects.latest("uploaded_at")
last_model_name = last_model.document.name
MODEL_DIR = Path(MEDIA_DIR) / last_model_name
model = parser(MODEL_DIR)
xlsx_name = Path(last_model_name).stem
XLS_DIR = Path(download_path) / (xlsx_name + '.xlsx')
model[1].to_excel(XLS_DIR)
return render(request, 'core/model_form_download.html')
return render(request, 'core/model_form_download.html')
这里的额外问题是如何接受用户选择的首选转换格式并在此视图功能中使用?
解决方案
def model_form_download(request):
if request.method == 'POST':
download_path = ??? #How to take in the user defined upload path?
last_model = Document.objects.latest("uploaded_at")
last_model_name = last_model.document.name
MODEL_DIR = Path(MEDIA_DIR) / last_model_name
model = parser(MODEL_DIR)
xlsx_name = Path(last_model_name).stem
XLS_DIR = Path(download_path) / (xlsx_name + '.xlsx')
model[1].to_excel(XLS_DIR)
return render(request, 'core/model_form_download.html')
return render(request, 'core/model_form_download.html')
如何获取用户定义的上传路径?
如果您在前端有这样的表单:
<form>
<input name="download_path" .../>
...
然后在您的 django 视图中,您可以从请求中访问它
download_path = request.POST.get("download_path")
转换格式也是如此,只需将其添加到表单并从请求对象访问它即可。
虽然你真的应该考虑使用表格:https ://docs.djangoproject.com/en/3.2/topics/forms/
推荐阅读
- javascript - 试图只使用高阶函数来制作中继器功能?
- c++ - 使用 constexpr 和 std::array 静态初始化获取闰年以替换动态初始化的 std::vector
- css - 大众单位中定义的字体大小在桌面中显得太大
- azure-logic-apps - 如何在逻辑应用(天蓝色)中更改撰写连接器的顺序。默认为 asc 命令
- reactjs - 当我尝试推送我的应用程序时,heroku 一直给我这个错误
- spring - spring如何在没有控制器映射的情况下解析.jsp页面
- javascript - 如何在递归操作中携带结果
- mysql - 如何在 MySql 中计算唯一性和重复性
- ssms - 如何使用混合连接管理器从 Azure VM 中的 SSMS 连接到 OnPremise SQL Server
- python - python中的SARIMAX自定义