如何在django视图中检索静态文件的内容?

时间:2013-12-02 07:28:34

标签: django static

我有html文件,我想从django视图向用户提供该文件的内容。

基本上这些文件是内部结构为html的数据文件。

**编辑**

所以你想渲染它们(在浏览器中显示它们),还是发送它们下载?是模板还是用户上传的文件?

答:客户端将使用html(以及其他数据)并用它替换页面的某些部分。 (我想我将如何使用它并不重要。我们可以将html内容视为数据)

您在编写软件时是否知道相关文件的名称,或者您是否只在运行时知道它们的名称?

答:我目前有一个将文件路径作为字段的表。即。文件路径可以在运行时更改

1 个答案:

答案 0 :(得分:4)

您希望利用静态文件存储系统。

from django.contrib.staticfiles.storage import staticfiles_storage

file_handle = staticfiles_storage.open(your_filename)
contents = file_handle.read()

文件名(上面的your_filename)应该是静态文件的相对路径(不包括STATIC_URL(/static/[this part]

编辑:Finder与存储

如果要查找存储在应用程序目录(或其他已配置的静态查找程序)中的静态文件,则需要使用查找程序而不是存储来检索文件内容。以下是如何做到这一点:

from django.contrib.staticfiles.finders import find
file_path = "relative/path/to/file.extension"
abs_path = find(file_path)
file(abs_path).read()