Передача данных в переменную javascript
Я использую Flask для создания своего сайта. Получаю данные из БД и отправляю их на страницу сайта, которые хочу разместить в таблицу:
return render_template('_page.html', data = data)
Далее на странице запускаю скрипт:
...
<table class="table table-striped table-sm text-center" id="table_data"></table>
<script src="{{url_for('static', filename='js/script.js')}}"></script>
...
В скрипте объявляю переменную:
//вот тут затык
var data = ?
которую хочу передать в другой скрипт (мне так надо):
const table_device = new DataTable('table_data', data);
Проблема в следующем: я не могу понять, как выловить переменную data?, то есть если в скрипте script.js за хардкодить переменную:
var data = [["test", "test", "test"]["test1", "test1", "test1"]]
(именно в таком формате я получаю данные из БД на страницу _page.html), то таблица отображается корректно. Но как получить живые данные - ума не приложу. Весь интернет перелопатил, но там предлагают только примеры как я показывал с хардкодом.
Ну и тут сама генерация таблицы:
#createTBody() {
this.tbody = this.table.querySelector('tbody');
this.tbody = document.createElement('tbody');
for (let i of this.data) {
this.tr = document.createElement('tr');
for (let item of i) {
this.td = document.createElement('td');
this.td.innerHTML = item;
this.tr.appendChild(this.td);
}
this.tbody.appendChild(this.tr);
}
this.table.appendChild(this.tbody);
}
Ответы (1 шт):
У меня получилось решить свой вопрос. Нужно было в с троке запуска скрипта добавить {{data|tojson}}:
<script id = "data" src="{{url_for('static', filename='js/script.js')}}">{{data|tojson}}</script>
В моём случае это работает!