为了账号安全,请及时绑定邮箱和手机立即绑定

如何在没有静态的情况下在 Django 模板中显示图像?

如何在没有静态的情况下在 Django 模板中显示图像?

慕仙森 2021-06-11 08:27:56
我有一个 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 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

{% static 'image.jpg' %}不会神奇地使图像显示在网站中,django 会使用其给出的内容呈现模板。静态意味着查看静态文件夹,以文件形式搜索给定参数,并获取该给定静态资产的 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。希望能帮助到你!


查看完整回答
反对 回复 2021-06-15
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

通过 python 在视图中获取图像。在呈现页面时通过您的上下文传递它们。使用 django 的模板标签将 URL 放在标签中。


查看完整回答
反对 回复 2021-06-15
  • 2 回答
  • 0 关注
  • 181 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信