图片无法以html格式显示

时间:2018-01-01 12:11:56

标签: python html django

图片无法在html中显示。我在models.py

中编写了代码
class POST(models.Model):
    title = models.CharField(max_length=100)
    image = models.ImageField(upload_to='images/', blank=True, null=True)
    created_at = models.DateTimeField(auto_now_add=True)
在views.py中

def top(request):
    content = POST.objects.order_by('-created_at')[:5]
    return render(request, 'top.html',{'content':content})
top.html中的

<div>
         {% for item in content %}
            <div>
                 <h2>{{ item.title }}</h2>
                 <img src="{{ item.image }}"/>
            </div>
         {% endfor %}
</div>

当我在浏览器中访问时,会显示html。<h2>{{ item.title }}</h2>会显示但<img src="{{ item.image }}"/>不存在。当我在GoogleChrome中看到页面来源时,会显示<img src="/images/photo.jpg"/>。但是当我点击网址时,发生404错误。我的应用程序有图像/图像文件夹,在图像文件夹中肯定我上传的图片在那里。我真的不明白为什么会这样。我在settings.py中写了MEDIA_ROOT&amp; MEDIA_URL所以我认为图像显示在浏览器中。我该如何解决这个问题?

4 个答案:

答案 0 :(得分:0)

确保您的/ images文件夹可以在Django中访问。完成它的一个简单方法是在settings.py中添加“images”文件夹。像:

IMAGE_URL = '/images/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "images"),
    '/images/',
]

然后在你的html文件中添加{%load images%}。

答案 1 :(得分:0)

首先确保在项目网址文件中包含这些行

# Your imports ....
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [.......]

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

在您的模板中使用

{{ item.image.url }}

答案 2 :(得分:-1)

使用相对文件夹:

<img src=".{{ item.image }}"/>

导致

<img src="./images/photo.jpg"/>

并检查上传是否有效以及图像是否存在。

答案 3 :(得分:-1)

试试这个:<img src="/image{{ item.image }}"/>

/ :表示&#34; Root &#34;

:表示&#34; 当前目录&#34;

因此,如果您的根应用程序有图像文件夹,则需要使用/ image

开始路径