Django 无法在页面上显示图像

Django can't show images on page

我正在拼命尝试在 Django 的帮助下从我的数据库中加载一些图像。 加载似乎有效,但从数据库中取回它们并在网页上显示它们似乎无效。

这里有一些信息:

环境:

我的项目 |_forpix(我的应用程序) |_我的项目 |_媒体 |_图片 |_mimicry3.png

我有一个 base.html 其中包含一个内容块 "allimages.html":

{% extends "base.html" %}
{% block content %}
<div id="imagelist">
    {% for image in images %}
    <p><img src="{{MEDIA_ROOT}}{{image.picture.url}}" />{{ image }}</p>
    {% endfor %}
</div>

{% endblock %}

这给了我以下结果:

如果我点击其中一张图片,我会得到:

在我的 settings.py 中,我设置了以下内容:

STATIC_URL = '/static/'

MEDIA_URL = '/media/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'templates/'),)

现在我真的不知道如何解决这个问题。 谁能给我一些帮助(不是 django 教程,我去过那里,试过了)

我是否必须在 urls.py 中添加一些内容,特别是对于媒体文件?还是其他原因?

如果我需要提供额外的信息,请询问。

^media/$ 是一个非常错误的媒体文件正则表达式。您应该从此正则表达式中删除 $ (end-of-the-string) 符号。

通常对于开发环境,我在 urls.py:

中使用这个片段
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = patterns('',
    ...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

同时从您的模板代码中删除无用的 {{ MEDIA_ROOT }} 部分。应该是:

<img src="{{ image.picture.url }}" />

此外,您必须添加的行是..

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = patterns('',
    ...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

但它必须在您的项目文件夹的 urls.py 中。不在您的 App 文件夹的 urls.py 中。我错了。