Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:静态文件与其他数据文件_Python_Django - Fatal编程技术网

Python Django:静态文件与其他数据文件

Python Django:静态文件与其他数据文件,python,django,Python,Django,如果要在模板中显示图像,则指定的路径相对于我的应用程序目录中的静态文件夹。但是,如果我想从视图函数加载文件,那么我指定的路径似乎是相对于项目目录的。这些文件应该都在同一个目录中吗?还是以这种方式将它们分开是很典型的?由视图功能加载的文件(例如包含人类可读设置的文本文件)是否被视为静态文件,与用于呈现我的模板的图像、css和js文件具有相同的意义?Django支持两种不同的功能:静态文件和媒体文件。静态文件CSS、JavaScript和图像是网站的一部分。用户上载的内容(如图像或视频)将上载到ME

如果要在模板中显示图像,则指定的路径相对于我的应用程序目录中的静态文件夹。但是,如果我想从视图函数加载文件,那么我指定的路径似乎是相对于项目目录的。这些文件应该都在同一个目录中吗?还是以这种方式将它们分开是很典型的?由视图功能加载的文件(例如包含人类可读设置的文本文件)是否被视为静态文件,与用于呈现我的模板的图像、css和js文件具有相同的意义?

Django支持两种不同的功能:静态文件和媒体文件。静态文件CSS、JavaScript和图像是网站的一部分。用户上载的内容(如图像或视频)将上载到MEDIA_ROOT。您可以使用以下两种设置来控制:

MEDIA_ROOT = '/absolute/path/to/media'
MEDIA_URL = '/media/'
使用dev server,您可能需要将其添加到URL中

urlpatterns = patterns('',
    # ... the rest of your URLconf goes here ...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

使用文件上载字段FileField、ImageField,您可以使用url属性获取文件url,该属性将包括定义的媒体url。

否,您不应将真正的静态内容与包数据文件混淆。除此之外,您通常不希望用户能够直接读取这些数据文件。相反,请将文件放在包目录中的其他位置,然后使用来读取它们