我有一个高速球Intelbras VIP 5220 SD红外摄像机,可以使用python代码移动其位置(PTZ功能)。但是,我想使用网页上的按钮移动其位置。我使用Django创建了一个网页,因此我想单击该按钮,然后希望我的相机移动,但是我不知道如何使用Django调用python函数。我发现了一些关键字,例如Django Channels,Ajax和WebSockets,但一切看起来都很复杂。
为此,我到目前为止已经这样做:
HTML:
<script>
$(document).ready(function(){
$("button").click(function(){
//alert("Botao foi clicado");
$.ajax({
type: "POST",
url: "/ajax_move_camera/",
data:{
"var1":"val1"
},
dataType: 'json',
sucess: function(data){
alert("Sucess");
},
error: function(data){
alert("Error")
}
})
});
});
</script>
VIEWS.py
def ajax_move_camera(request):
x=10
data={}
return JsonResponse(data)
URL.py
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^$', views.ajax_move_camera, name='ajax_move_camera')
]
答案 0 :(得分:0)
有关如何实现此目标的草稿
your_template.html
<html>
... stuff ...
<button id="camera_move_btn">Move Camera</button>
... stuff ...
<script>
function call_this_function_on_btn_click() {
$.ajax({
type: "POST",
url: "/ajax_move_camera/",
data: {
"var1": "val1"
"csrfmiddlewaretoken", "{{ csrf_token }}"
},
dataType: 'json',
success: function(data) {
... something comes back ...
}
})
}
</script>
views.py
def ajax_move_camera(request):
... do something ...
data = {}
return JsonResponse(data)
您将必须将ajax URL与url.py
文件中的view方法进行匹配,并记住在我使用他们的ajax方法时包括Jquery。
如果您不想添加Jquery,则可以查看XMLHttpRequest来执行请求。