Вызов функции Python с использованием HTML / Django - PullRequest
0 голосов
/ 15 января 2019

У меня есть камера Speed ​​Dome Intelbras VIP 5220 SD IR, с помощью которой я могу перемещать свое положение (функция PTZ) с помощью кода Python. Тем не менее, я хочу переместить свою позицию с помощью кнопки на веб-странице. Я создаю веб-страницу, используя Django, поэтому я хочу нажать на кнопку, и я хочу, чтобы после этого моя камера двигалась, но я не знаю, как вызвать мою функцию python, используя Django. Я нашел несколько ключевых слов, таких как 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')

]

1 Ответ

0 голосов
/ 15 января 2019

Черновик о том, как вы можете подойти к этому

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)

вам нужно будет сопоставить URL-адрес ajax с методом view в вашем файле url.py и не забудьте включить Jquery, поскольку я использовал их метод ajax.

Если вы не хотите добавлять Jquery, вы можете посмотреть XMLHttpRequest , который выполнит запрос.

...