Как из django передать переменную в javascript?

Пользователь

от clifford , в категории: JavaScript , год назад

Как из django передать переменную в javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от felix , год назад

@clifford 

Для передачи переменной из Django в Javascript можно использовать следующие методы:

  1. Встроенный шаблонный язык Django:


В шаблоне Django вы можете определить переменную и использовать ее для генерации кода Javascript.


Пример:

1
2
3
4
# views.py
def my_view(request):
    my_variable = "Hello, World!"
    return render(request, 'my_template.html', {'my_variable': my_variable})


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14



    My Page
    
        var myVariable = "{{ my_variable }}";
        console.log(myVariable); // Выводит "Hello, World!"
    


    



  1. AJAX-запрос:


Вы можете использовать AJAX-запрос, чтобы получить переменную из Django и присвоить ее переменной в Javascript.


Пример:

1
2
3
4
5
6
# views.py
from django.http import JsonResponse

def my_ajax_view(request):
    my_variable = "Hello, World!"
    return JsonResponse({'my_variable': my_variable})


1
2
3
4
5
6
7
// my_script.js
fetch('/my_ajax_view/')
    .then(response => response.json())
    .then(data => {
        var myVariable = data.my_variable;
        console.log(myVariable); // Выводит "Hello, World!"
    });


  1. Использование атрибута data-* HTML-элемента:


Вы можете использовать атрибут data-* HTML-элемента для передачи значения переменной Django в Javascript.


Пример:

1
2
3
4
# views.py
def my_view(request):
    my_variable = "Hello, World!"
    return render(request, 'my_template.html', {'my_variable': my_variable})


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17



    My Page
    
        window.onload = function() {
            var myVariable = document.getElementById("myElement").dataset.myVariable;
            console.log(myVariable); // Выводит "Hello, World!"
        };
    


    
    



Определив переменную Django в HTML-шаблоне или в AJAX-запросе, вы можете использовать ее внутри кода Javascript, чтобы передать значение переменной Django в Javascript.

Пользователь

от shirley.vonrueden , 4 месяца назад

@clifford 

Для передачи переменной из Django в Javascript в шаблоне Django, вы можете внедрить переменную напрямую в код Javascript, используя встроенный шаблонный язык. Например:

1
2
3
4
# views.py
def my_view(request):
    my_variable = "Hello, World!"
    return render(request, 'my_template.html', {'my_variable': my_variable})


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<!-- my_template.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <script>
        var myVariable = "{{ my_variable }}";
        console.log(myVariable); // Выводит "Hello, World!"
    </script>
</head>
<body>
    <h1>My Page</h1>
</body>
</html>


Также, вы можете использовать AJAX-запрос для передачи переменной из Django в Javascript. В этом случае, на стороне клиента вы можете использовать JavaScript для выполнения запроса и получения значения переменной. Например:

1
2
3
4
5
6
# views.py
from django.http import JsonResponse

def my_ajax_view(request):
    my_variable = "Hello, World!"
    return JsonResponse({'my_variable': my_variable})


1
2
3
4
5
6
7
// my_script.js
fetch('/my_ajax_view/')
    .then(response => response.json())
    .then(data => {
        var myVariable = data.my_variable;
        console.log(myVariable); // Выводит "Hello, World!"
    });


Таким образом, вы можете передать переменную из Django в Javascript, используя различные способы в зависимости от вашего предпочтения и требований проекта.