如何在Django模板中显示静态图像?

时间:2018-09-11 06:49:01

标签: python django

我有一个API,可以给我看电影列表,图像在 HTTP 链接中,例如:

https://d2gx0xinochgze.cloudfront.net/5/public/public/system/posters/12/thumb/Tevar-Movie-Opening-Day-Box-Office-Collection-Report-1140x752_1482917123.jpg

因此在Django中,我们使用静态文件{% static 'image.jpg' %}在模板中显示图像,但是如何在模板中显示api图像链接?

2 个答案:

答案 0 :(得分:0)

{% static 'image.jpg' %}不会神奇地使图像显示在网站上,django会使用给出的模板渲染模板。静态意味着查看一下statics文件夹,将给定参数作为文件搜索,并获取该给定静态资产的url。

在您的特定情况下,您说获得图像的URL。您可以轻松地将这些url添加到上下文中,然后将其作为呈现过程的一部分。

对于函数视图,它大致如下所示。

def view(request, *a, **kw):
    template = loader.get_template('my_template.html')
    context = {'my_image': get_image_from_api()}
    return HttpResponse(template.render(context, request))

对于基于类的视图,它大致如下所示。

class MyView(TemplateView):
    template_name = 'my_template.html'
    def get_extra_context(self):
        _super_context = super().get_extra_context()
        context = {'my_image': get_image_from_api()}
        return {**_super_context, **context}

对于这两种视图,它们大致相同;您现在可以在模板内使用{{my_image}}来引用URL。希望对您有帮助!

答案 1 :(得分:-2)

通过python在视图中说出图像。呈现页面时,将它们传递通过上下文。使用Django的模板标签将URL放入标签中。