Django:下载上载的文件
我在这个问题上有详细的表格 如何下载上传的文件。当我进入表单的编辑视图时,我可以看到上传的文件url,但它不是下载的。 开发和生产模式需要改变什么设置 单击链接时出错:Django:下载上载的文件,django,django-forms,django-views,django-urls,Django,Django Forms,Django Views,Django Urls,我在这个问题上有详细的表格 如何下载上传的文件。当我进入表单的编辑视图时,我可以看到上传的文件url,但它不是下载的。 开发和生产模式需要改变什么设置 单击链接时出错: Page not found (404) Request Method: GET Request URL: http://127.0.0.1:8000/media/Certificate.docx Using the URLconf defined in tiktant.urls, Django tried th
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/media/Certificate.docx
Using the URLconf defined in tiktant.urls, Django tried these URL patterns, in this order:
^ ^$ [name='home']
^ ^login/$ [name='login']
^ ^logout/$ [name='logout']
^ ^logout_then_login/$ [name='logout_then_login']
^ ^dashboard/$ [name='dashboard']
The current URL, media/Certificate.docx, didn't match any of these.
媒体url未显示在根url.py文件中。您需要在url.py文件中添加以下代码以启用相同的功能
if settings.DEBUG:
from django.conf.urls.static import static
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
注意:请不要忘记在settings.py文件中添加媒体根目录和媒体URL。要下载文件,您需要编写更多的代码。根url.py文件中没有显示媒体url。您需要在url.py文件中添加以下代码以启用相同的功能
if settings.DEBUG:
from django.conf.urls.static import static
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
注意:请不要忘记在settings.py文件中添加媒体根目录和媒体URL。要下载文件,您需要编写更多的代码。请确保在项目中添加以下行 设置.py
import os
def root(x):
return os.path.join(os.path.abspath(os.path.dirname(__file__)), '..',x)
MEDIA_ROOT = root('media')
MEDIA_URL = '/media/'
TEMPLATE_CONTEXT_PROCESSORS = (
'-----------------------'
'django.core.context_processors.media',
)
url.py
from django.conf.urls import patterns, include, url
from django.conf import settings
urlpatterns += patterns('',url(r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
)
从django.conf.url导入模式,包括,url
从django.conf导入设置
urlpatterns+=模式(“”,url(r'^media/(?P.*)$,'django.views.static.service',{'document_root':settings.media_root,'show_index':True}),
)
确保在项目中添加了以下行
设置.py
import os
def root(x):
return os.path.join(os.path.abspath(os.path.dirname(__file__)), '..',x)
MEDIA_ROOT = root('media')
MEDIA_URL = '/media/'
TEMPLATE_CONTEXT_PROCESSORS = (
'-----------------------'
'django.core.context_processors.media',
)
url.py
from django.conf.urls import patterns, include, url
from django.conf import settings
urlpatterns += patterns('',url(r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
)
从django.conf.url导入模式,包括,url
从django.conf导入设置
urlpatterns+=模式(“”,url(r'^media/(?P.*)$,'django.views.static.service',{'document_root':settings.media_root,'show_index':True}),
)
这正在工作。当我启动它的时候,我需要做任何改变吗?我的意思是同样的事情也适用于生产模式?我可以下载文件。我可以标记它已解决,但第二个问题待定。生产方式会有变化吗?如果debug=False?@PulkitSharma,您必须运行python manage.py collectstatic,才能在生产环境中加载所有css、js和媒体文件。这是可行的。当我启动它的时候,我需要做任何改变吗?我的意思是同样的事情也适用于生产模式?我可以下载文件。我可以标记它已解决,但第二个问题待定。生产方式会有变化吗?使用debug=False?@PulkitSharma,您必须运行python manage.py collectstatic,以便在生产环境中加载所有css、js和媒体文件。