Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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_Python 2.7_Django 1.11 - Fatal编程技术网

Python 在Django中访问媒体文件

Python 在Django中访问媒体文件,python,django,python-2.7,django-1.11,Python,Django,Python 2.7,Django 1.11,我有这个根 project polls data xml_files x.xml 我补充说 MEDIA_URL = '/data/' MEDIA_ROOT = '/data/xml_files/' 我补充说 urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'', include('web.urls')), ] + static(settings.STATIC_UR

我有这个根

project
   polls
       data
          xml_files
             x.xml
我补充说

MEDIA_URL = '/data/'
MEDIA_ROOT = '/data/xml_files/'
我补充说

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('web.urls')),
]  + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
当我尝试

localhost:8000/data/fuzzy.xml

它发送带有
/data/xml\u files/FuzzyMirab1.xml
404未找到页面


如何访问该文件夹?

我建议您将数据文件夹移动到项目的根目录:

project
   data
       xml_files
           x.xml
   polls
并从
媒体根目录的开头删除斜杠:

MEDIA_ROOT = 'data/xml_files/'
或者您可以使用
polls/data/xml\u files/
,而不移动目录,但对我来说,这似乎是一个糟糕的体系结构

正如@Mikhail Burshteyn所建议的,您也可以使用绝对路径:

MEDIA_ROOT = '/path/to/project/polls/data/xml_files/'

尝试包括轮询文件夹?确保
django.contrib.staticfiles
包含在您安装的应用程序中。是否使用django开发服务器(
runserver
命令)?在这种情况下,请确保
DEBUG
设置为
True
。我尝试了MEDIA\u URL=/polls/data/xml\u files/但它不起作用。我确信django.contrib.staticfiles也包含在内。您的媒体根目录是一个绝对路径,而不是一个相对路径。试着改变一下