运行python代码哦,点击按钮不重定向

运行python代码哦,点击按钮不重定向,python,ajax,django,Python,Ajax,Django,我正在制作一个网页,可以移动相机。我创建了一些按钮,所以无论何时按下它,我们都会转到url.py“moveRight”,然后转到views.py。在views.py move()函数中(这是一个python脚本),移动一个相机,然后我返回到第一页,按钮所在的位置 panel.py <form action="{% url 'cameracontrol:moveRight' %}" method="post"> {% csrf_token %} <button

我正在制作一个网页,可以移动相机。我创建了一些按钮,所以无论何时按下它,我们都会转到url.py“moveRight”,然后转到views.py。在views.py move()函数中(这是一个python脚本),移动一个相机,然后我返回到第一页,按钮所在的位置

panel.py

<form action="{% url 'cameracontrol:moveRight' %}" method="post">
     {% csrf_token %}
     <button type="submit" id="right" class="btn btn-default" aria-label="Move right"></button>
</form>
views.py

def moveCameraRight(request): # 
    move()
    return HttpResponseRedirect('/cameracontrol/')

但是我需要在不重新加载的情况下运行/cameracontrol/page。我看到了一些关于ajax的内容,但不知道如何在这里准确地使用它

这个解决方案应该是可行的

Ajax调用 views.py
在html文件中,可以添加一些JavaScript来进行Ajax调用。我之所以添加JQuery库,是因为它使使用JavaScript更容易

<!--somefile.html-->
<html>
<head>....</head>
<body>
    <button id="right" class="btn btn-default" aria-label="Move right"></button>
    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script>
        $(document).ready(function(){
            $('#right').on('click', function() {
                $.ajax({% url 'cameracontrol:moveRight' %});
            });
        });
    </script>
</body>
</html>
但您还需要在标头中包含CSRF令牌。我通常做以下事情

function csrfSafeMethod(method) {
    // these HTTP methods do not require CSRF protection
    return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
beforeSend: function(xhr, settings) {
    if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
        xhr.setRequestHeader("X-CSRF-Token", {% csrf_token %});
        }
    }
});

使用ajax并在
views.py
中返回
None
。它不会重新加载。@vinaykumar-不,所有视图都必须返回响应。是的,您确实需要使用ajax,但是关于如何使用ajax的完整解释太宽泛了,您可以这样使用。对于ajax,您可以使用我试过的这个,但是当我单击按钮时,它没有响应,views.py响应中应该包含什么?在我发布的代码中,响应并不重要。我以为目的只是移动相机,你可以返回任何响应,并在ajax的成功回调中处理它。你正在展示相机的预览吗?是单个图像还是流式响应?如果它正在流式传输您的ajax响应,这并不意味着单击后什么都没有发生,我无法访问我的move()脚本。您编写了:$(document).ready(function(){$('#right').on('click',function(){$.ajax({%url'cameracontrol:moveRight%});});什么是文件?我应该写些不同的东西吗?你能检查一下你浏览器的调试控制台中是否有错误吗。我可能错过了什么。文档是html文档。它是JavaScript中的一个特殊变量
def moveCameraRight(request): # 
    move()
    return JsonResponse({'move': 'right'})
<!--somefile.html-->
<html>
<head>....</head>
<body>
    <button id="right" class="btn btn-default" aria-label="Move right"></button>
    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script>
        $(document).ready(function(){
            $('#right').on('click', function() {
                $.ajax({% url 'cameracontrol:moveRight' %});
            });
        });
    </script>
</body>
</html>
$.ajax({
    url: url,
    method: 'POST',
});
function csrfSafeMethod(method) {
    // these HTTP methods do not require CSRF protection
    return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
beforeSend: function(xhr, settings) {
    if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
        xhr.setRequestHeader("X-CSRF-Token", {% csrf_token %});
        }
    }
});