用相机流显示Django模板

时间:2017-12-22 12:58:22

标签: python django

我正在尝试使用Django在Python中构建一个简单的网站。我想加载并显示模板,然后在模板的背景上显示从网络摄像头获取的图像几秒钟。图像不需要作为模板的一部分显示,如果它们在单独的窗口上显示在顶部,则可以。 问题是模板已加载并且在相机代码完成后仅显示,即我看到带有摄像机流的窗口,但只有在完成模板加载时才会看到。我想加载模板,然后显示窗口。这是代码:

from django.shortcuts import render

def takePicture(request):
    temp = render(request,'pepper/picture.html')
    camstream()
    return temp

camstream()是激活来自摄像头的流的方法,它按预期工作。它使用pygame,遵循this教程。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果要在设置相机屏幕之前向用户显示内容,则需要在设置相机屏幕之前为用户提供HTML。您似乎正在尝试通过调用

来实现此目的
temp = render(request,'pepper/picture.html')

但是,该行只是从pepper / picture.html提供的模板创建HTML - 它实际上并没有向用户提供HTML。

通常,您可以通过在javascript中编写相机逻辑并将该javascript嵌入picture.html来实现此目的。如果您想将所有内容保存在django / python中,那么我想您可以通过将takePicture拆分为两个视图来实现这一目标:

def picture_without_stream(request):
    return render(request,'pepper/picture.html')

def picture_with_stream(request):
    camstream()
    return render(request,'pepper/picture.html') 

您最初可以加载picture_without_stream,加载时会重定向到picture_with_stream。但那很难看。