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 中。我错了。
我正在拼命尝试在 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 中。我错了。