【问题标题】:Display picture in my HTML file with Django Media使用 Django Media 在我的 HTML 文件中显示图片
【发布时间】:2017-11-29 02:06:26
【问题描述】:

我想将图片从我的 Django 媒体文件夹导入到我的 HTML 文件中,但到目前为止它似乎无法正常工作。

我的 settings.py 文件看起来像:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join('/Users/terii/Desktop/Django/Project A', 'Photos_Identifications/')

在我的 HTML 文件中,我有:

{% if object.Image %}

            Methode 1 : <img src="http://localhost:8000/media/pictures/test.jpg"/> #It works
            <br></br>
            Methode 2 : <img src="/Users/terii/Desktop/Django/Project A/Photos_Identifications/pictures/test.jpg"/> #It works
            <br></br>
            Methode 3 : <img src="{{ MEDIA_URL}}{{object.Image}}"/> #It doesn't work
        {% endif %}

我不知道为什么我的Method 3 不起作用,我想知道您是否有任何想法?我不想写整个路径,因为它应该是动态的。

谢谢你:)

【问题讨论】:

  • 如果您在浏览器上检查 html 页面,使用 {{MEDIA_URL}}{{object.Image}} 会在 img src 上获得什么作为 url?
  • 如果我打印settings.MEDIA_URL/media/,如果我打印settings.MEDIA_ROOT/Users/terii/Desktop/Django/Project A/Photos_Identifications/。如果我打印object.Imagepictures/test.jpg。所以src="{{MEDIA_ROOT}}{{object.Image}} 应该可以工作:/
  • 还有一个信息:我正在使用来自xhtml2pdfpisa

标签: html django url


【解决方案1】:

您不必使用媒体网址 试试这个

<img src="{{object.Image.url}}"/> 

【讨论】:

  • 假设网络服务器知道/media/ 位置,但是是的。它至少可以与 python manage.py runserver 一起使用。
【解决方案2】:

我找到了答案。问题来自Pisa library

我在views.py文件中添加了:

def link_callback(uri, rel):
    if uri.find('chart.apis.google.com') != -1:
        return uri
    return os.path.join(settings.MEDIA_ROOT, uri.replace(settings.MEDIA_URL, ""))

那么,

pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("utf-8")), file, link_callback=link_callback)

它适用于:

<img src="{{MEDIA_ROOT}}{{object.Image.url}}" width="200" height="150"/>

在我的 HTML 文件中!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 2019-07-26
    • 2014-07-26
    • 2017-09-07
    • 2021-08-23
    • 2021-07-07
    相关资源
    最近更新 更多