Как получить доступ к django python возвращенным данным JSON в части javascript html-страницы - PullRequest
0 голосов
/ 19 мая 2019

Я хочу знать, как получить доступ к данным JSON, возвращаемым питоном django, в части javascript html-страницы.Это данные JSON, которые я получаю со стороны сервера, которую я зарегистрировал в консоли браузера

{"movieName": "Avengers", "releaseYear": "2019", "boxOffice":" 2.3B "}

68

Вот мой пример кода

Часть Javascript

var dataFromDjango = "{{ myData | escapejs | safe }}";
console.log(dataFromDjango);
var t = Object.keys(dataFromDjango).length;
console.log(t);

Python code

context = {}
context['movieName'] = 'Avengers'
context['releaseYear'] = str(2019)
context['boxOffice'] = '2.3B'

jsonData = json.dumps(context)
return render(request, "InterfacePage.html", {"myData" : jsonData})

Я ожидал, что длина ключей будет 3.

Ответы [ 2 ]

1 голос
/ 19 мая 2019

Вы представляете свой BLOB-объект JSON в виде строки.В самом деле, вы пишете что-то вроде:

"{\"movieName\": \"Avengers\", \"releaseYear\": \"2019\", \"boxOffice\": \"2.3B\"}";

в вашем файле JavaScript.The Object.keys(dataFromDjango) will return the indices of the string, so an array from 0 to 68`.

Вы можете представить BLOB-объект JSON в JavaScript с помощью:

var dataFromDjango = <b>JSON.parse('</b>{{ myData | safe }}<b>')</b>;

, поэтому здесь мы позволяем JavaScript преобразовать строку обратно в объект JavaScript,это, вероятно, самый безопасный вариант, поскольку, если строка содержит prombe, s, JavaScript при запуске разбора BLOB-объекта JSON выдаст ошибку.

1 голос
/ 19 мая 2019

Вам необходимо проанализировать его из строки JSON в объект JS. Обратите внимание, вы не должны использовать escapejs здесь.

var dataFromDjango = JSON.parse("{{ myData | safe }}");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...