【问题标题】:Live streaming of images in django to frontend html将 django 中的图像实时流式传输到前端 html
【发布时间】:2020-06-25 14:56:39
【问题描述】:

我的项目媒体文件夹中有很多图像,这些图像是使用 sdk 相机(Alliedvision)保存的。每当相机将这些图像保存在媒体文件夹中时,我都需要将这些图像一张一张地流式传输到 html 页面。是可以在 django 中流式传输图像吗?

【问题讨论】:

  • 您只是想在您的某个模板中显示一张图片?如果添加了新的,请将当前的替换为新的?
  • 是的,我也必须这样做...将当前的更改为新的@EdwinCruz
  • 图片是直接上传到文件夹还是使用django服务器?
  • 图片应该使用 django 服务器上传..@PankajSharma
  • Websockets 可以帮助您,在客户端和服务器端使用 js 创建 ws 连接,使用 post_save 触发 ws 上的发送事件(该图像的 url)。

标签: html django


【解决方案1】:

当您从 ajax 保存图像时,返回列表中的所有图像 url 并成功创建动态 html 元素,即<img src="url">

$.ajax({
        url: url,
        type: "POST",
        data: {
            image: image_data
        },
        success: function(response) {
          let images = response.images;
          $.each(images,function(index,url){
             $(".img-container").append("<img src="+url+">");
         });
        }
    })

在您的视图中返回图片网址为 - return JsonResponse({'images':[image.url for image in ImageModel.objects.all()]})

【讨论】:

  • 感谢您的回复。我在我的项目中试过这个。但所有图像都显示在附近。这不是我问的,我一次需要一张图像,它应该在同一个 中逐帧更改
  • @Sharon 你得到了图片的 url,现在可以随意处理了,也许你可以使用任何 Carousel 库,比如 - w3schools.com/howto/howto_js_slideshow.asp 或者给 img attr 提供 id 并在 a 之后更改 url时间间隔,现在是javascript的问题以及如何处理图像,我已经回答了如何从django渲染图像。
  • 感谢您的指导。它现在正在工作..现在的挑战是处理图像大小,我可以使用任何压缩技术。
【解决方案2】:

我建议您制作一个 Ajax 脚本来呈现,为您获取信息。在您的视图中,您创建一个视图,该视图返回数据库中最后一个图像的 url,并使用 ajax 简单地对该视图发出 get 请求,如果它与现有的有任何不同,它将更改源。

【讨论】:

  • 请提供更具体的文档或示例
【解决方案3】:

您可以通过以下步骤解决问题:

  1. 使用类似 watchdog https://pypi.org/project/watchdog/ 的库来查看媒体文件夹中的新图像
  2. 当有新图像时调用 django 管理命令并通知客户端更新。使用 django 频道,您可以让客户端订阅可以通过管理命令中的逻辑通知的频道。

有关频道的实现,请参阅频道文档https://channels.readthedocs.io/en/latest/introduction.html

【讨论】:

  • 请更具体
猜你喜欢
  • 2013-06-30
  • 2023-03-21
  • 1970-01-01
  • 2019-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多