【问题标题】:How to display images in Django 1.10如何在 Django 1.10 中显示图像
【发布时间】:2017-01-08 08:16:08
【问题描述】:

我不擅长 django,我使用 Django 1.10,现在我在显示图像时遇到了问题。我在这个版本中读到了一些东西已经改变,但我不明白。这是我现在拥有的:

settings.py:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

STATIC_DIR = os.path.join(BASE_DIR, 'static')

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

STATICFILES_DIRS = [STATIC_DIR, ]

STATIC_URL = '/static/'

MEDIA_ROOT = 'C:/Users/john/myprojects/goal/website/goal/media/'

MEDIA_URL = '/media/'

也许这里有什么不寻常的地方,我可以删除它吗?

模板:

{% block content%}
    {{ car.name }}
    {{ car.photo.url }}
{% endblock %}

这是我保存图片的文件夹:

C:/Users/john/myprojects/goal/website/goal/media/images

我在我的网站上看到的不是图片:

/media/images/mynewcar.jpg

我必须改变什么?

我粘贴到 urls.py:

media_dir = os.path.join(os.path.dirname(file),'media')

到 urlpatterns

url(r'^media/(.*)$','django.views.static.serve',{'document_root': media_dir}),

【问题讨论】:

  • 您的模板中没有<img> 标签

标签: python django


【解决方案1】:

你必须放<img>标签

{% block content%}
    {{ car.name }}
    <img src="{{ car.photo.url }}">
{% endblock %}

更新

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

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

【讨论】:

  • 是的,谢谢 - 现在我看到了图片的位置,但没有。当我单击显示图像时,我得到信息“找不到页面”。我应该如何更改 url 或类似的东西?我的文件夹路径错了吗?
  • 你在开发模式下是否在 uls.py 中添加了媒体 url?
  • 我编辑了我的第一篇文章并添加了我在 urls 文件中的内容,但现在我得到的信息是,在 include() 的情况下,视图必须是可调用的或列表/元组。我试图将 urlpattern 更改为 url(r'^media/(.*)$',static.serve,{'document_root': media_dir}),但后来我得到 ''function' 对象没有属性 'serve'跨度>
猜你喜欢
  • 2017-01-11
  • 2017-07-08
  • 2017-04-04
  • 2017-04-14
  • 2020-10-17
  • 1970-01-01
  • 2011-11-10
  • 1970-01-01
  • 2015-06-04
相关资源
最近更新 更多