【问题标题】:Open standard file browser window when saving/exporting files with Python/Django使用 Python/Django 保存/导出文件时打开标准文件浏览器窗口
【发布时间】:2014-09-11 20:44:19
【问题描述】:

我正在使用 Python 和 Django Web 框架开发一个 Web 应用程序。有一部分我必须将 .csv 格式文件中的数据库表内容导出到本地磁盘。我想知道是否有一种方法可以显示文件浏览器窗口,让用户通过点击网页上的“按钮(例如选择目录)”来选择他/她想要保存此文件的位置(哪个目录)?

我很困惑是否应该通过 Python、Django 或 JavaScript 来实现此功能。

我希望它返回一个路径(字符串)到用户想要存储这个文件的位置。

更新- 我已经知道如何将内容导出到 .csv 文件中。我将此 cmd 传递给数据库:“复制” + table_name + “to '” + path + “' delimiter ',' csv header;”它完成了这项工作。所以我只需要用户选择的路径。我可以要求用户在文本框中手动输入路径并提交表单,但如果可以弹出文件浏览器窗口并让用户选择存储文件的位置,那就更好了。

【问题讨论】:

  • JS 可能是最简单的。那里有很多模态对话框,我相信有人已经编写了一个 jQuery 文件选择器,所以环顾四周。 AFAIK 用 Python/Django 编写它是行不通的,因为用户无法选择位置。 XHR 是您的最佳选择。

标签: python django web-applications file-browser django-filebrowser


【解决方案1】:

是的,当然可以。看看官方文档:

https://docs.djangoproject.com/en/1.7/howto/outputting-csv/

【讨论】:

  • 感谢您的回复,我已经知道如何将内容导出到 .csv 文件中。我将此 cmd 传递给数据库:“复制” + table_name + “to '” + path + “' delimiter ',' csv header;”它完成了这项工作。所以我只需要用户选择的路径。我可以要求用户在文本框中手动输入路径并提交表单,但如果可以弹出文件浏览器并让用户选择存储文件的位置会更好。
  • 您想将文件存储在服务器上,还是要下载?
  • 那么您应该在某些视图中通过 HttpResponse 将数据返回给用户。数据可以从某个文件中获取或流式传输。通常文件会下载到默认位置,但这取决于浏览器。无法设置下载文件的路径(由于安全原因 - 假设您有可能强制用户存储您站点中的内容,覆盖用户的本地配置文件,例如主机......)。
  • 您找到解决方案了吗?我正在尝试做同样的事情。
【解决方案2】:

我认为您应该使用 StreamingHttpResponse 或按照 @Igor Pormaranskiy 的建议使用简单的 HttpResponse

例如:http://django.readthedocs.org/en/1.7.x/howto/outputting-csv.html

http://djangotricks.blogspot.com/2013/12/how-to-export-data-as-excel.html

【讨论】:

    猜你喜欢
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多