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

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

от clifford , в категории: JavaScript , 8 месяцев назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от felix , 8 месяцев назад

@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.