使用 HTML/Django 调用 python 函数
Posted
技术标签:
【中文标题】使用 HTML/Django 调用 python 函数【英文标题】:Call a python function using HTML/Django 【发布时间】:2019-01-15 19:20:19 【问题描述】:我有一台摄像机 Speed Dome Intelbras VIP 5220 SD IR,我可以使用 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')
]
【问题讨论】:
嘿@Gustavo GeoDrones,您应该更改ajax_move_camera
的url 以匹配您在JQuery 函数中使用的url。
【参考方案1】:
关于如何处理此问题的草稿
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
文件中的视图方法相匹配,并记住在我使用他们的 ajax 方法时包含 Jquery。
如果您不想添加 Jquery,您可以查看 XMLHttpRequest,它将执行请求。
【讨论】:
谢谢斯蒂芬,但我试过了,它总是收到一条消息错误,如果我使用“csrfmiddlewaretoken”,代码也不起作用。听起来我在这里遗漏了一些重要的东西。我会更新我的问题,所以也许你可以看到发生了什么。以上是关于使用 HTML/Django 调用 python 函数的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 django(查询)在我的 html 中显示更多对象