如何使用 Django 的 MEDIA_URL 和 MEDIA_ROOT 提供上传的图像?

Patricia Arquette
发布: 2024-11-17 02:45:03
原创
378 人浏览过

How to Serve Uploaded Images with Django's MEDIA_URL and MEDIA_ROOT?

Django 的 MEDIA_URL 和 MEDIA_ROOT:解决图像访问问题

在 Django 中,MEDIA_URL 和 MEDIA_ROOT 设置在管理上传的文件和将它们提供给前端。常见的场景是使用 Django 管理员上传图像,然后通过 URL 或前端页面访问它。

按照所提出的问题,上传已正确保存,但 URL 访问会导致 404 错误,我们可以利用 URLconf 模式来解决这个问题。

Django 1.7 及以上版本的解决方案

根据 Django 2.1 文档,将以下代码片段添加到您的 URL 配置中将在开发过程中处理静态文件的服务,包括上传的媒体:

from django.conf.urls.static import static
urlpatterns = patterns(...) + static(MEDIA_URL, document_root=MEDIA_ROOT)
登录后复制

Django 1.6 及以下版本的解决方案

对于旧版本的 Django,以下 URLconf可以配置为提供静态媒体:

from django.conf.urls.patterns import patterns, url
from django.views.static import serve
if settings.DEBUG:
    urlpatterns += patterns('',
        url(r'^media/(?P<path>.*)$', serve, {'document_root': MEDIA_ROOT}))
登录后复制

通过添加此配置,Django 将在开发过程中当 DEBUG = True(在本地计算机上)时提供静态文件。但是,对于生产,可以将 Web 服务器配置为在 DEBUG = False 时处理静态媒体服务。

此解决方案允许您使用 Django 的 MEDIA_URL 和 MEDIA_ROOT 设置成功上传和访问本地计算机上的图像。

以上是如何使用 Django 的 MEDIA_URL 和 MEDIA_ROOT 提供上传的图像?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板