Django 不想显示媒体文件
Django doesn't want to show media files
我正在尝试输出我这样保存的图像:
product_image = models.ImageField(blank = True, upload_to='images')
我的 seetings.py 看起来像:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
这里还有urls.py:
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^$', include('store.urls')),
url(r'^', include('store.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
查询就像 ORM 的简单实现,但我也在 ORM 上尝试过
def index(request):
products = DAO.get_all_products()
return render(request, 'store/index.html', locals())
HTML:
<img src="{{product.product_image}}" class="img-responsive watch-right" alt=""/>
它不起作用,我没有看到任何图像,{{product.product_image}} 在浏览器中显示 images/pic13.jpg。但是我可以在 /admin 中看到这张图片
错误:
Not Found: /images/pic13.jpg
如何解决这个问题?此页面位于 App called store,urls.py 和 settings.py 在 main app
您通过.url
attribute [Django-doc]获得url:
<img src="{{ product.product_image<b>.url</b> }}" class="img-responsive watch-right" alt=""/>
请注意,在生产环境中(例如 DEBUG = False
),Django 不 提供文件服务。在这种情况下,您将需要配置 nginx、apache 等。有关详细信息,请参阅 Static file development view section of the documentation.
我们应该强烈使用 ORM 并查询 django 模型,django 不能像 ImageField 那样处理来自数据库的字符串。
我正在尝试输出我这样保存的图像:
product_image = models.ImageField(blank = True, upload_to='images')
我的 seetings.py 看起来像:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
这里还有urls.py:
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^$', include('store.urls')),
url(r'^', include('store.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
查询就像 ORM 的简单实现,但我也在 ORM 上尝试过
def index(request):
products = DAO.get_all_products()
return render(request, 'store/index.html', locals())
HTML:
<img src="{{product.product_image}}" class="img-responsive watch-right" alt=""/>
它不起作用,我没有看到任何图像,{{product.product_image}} 在浏览器中显示 images/pic13.jpg。但是我可以在 /admin 中看到这张图片 错误:
Not Found: /images/pic13.jpg
如何解决这个问题?此页面位于 App called store,urls.py 和 settings.py 在 main app
您通过.url
attribute [Django-doc]获得url:
<img src="{{ product.product_image<b>.url</b> }}" class="img-responsive watch-right" alt=""/>
请注意,在生产环境中(例如 DEBUG = False
),Django 不 提供文件服务。在这种情况下,您将需要配置 nginx、apache 等。有关详细信息,请参阅 Static file development view section of the documentation.
我们应该强烈使用 ORM 并查询 django 模型,django 不能像 ImageField 那样处理来自数据库的字符串。