Я знаю Python очень хорошо, но я новичок в веб-материалах и JavaScript. Я нашел сообщение о вызове функции python из кнопки на веб-сайте (Flask).
Я хочу сделать следующее: я хочу добавить новую строку в таблицу HTML. Данные будут поступать из Python. Я уже выяснил, что обновление сайта не является хорошим способом сделать это, вместо этого, похоже, JavaScript следует использовать. Скажем, у меня есть следующий код HTML:
<table class="table" id="myTable">
<thead>
<tr>
<th colspan="2">This is a table</th>
</tr>
</thead>
<tbody>
<tr>
<td>entry 1</td>
<td>entry 2</td>
</tr>
</tbody>
</table>
<script src="js/scripts.js"></script>
и в scripts.js у меня есть следующая функция (из связанного сообщения):
function appendRow(table_id) {
var table_ref = document.getElementById(table_id).getElementsByTagName('tbody')[0];
var new_row = table_ref.insertRow(table_ref.rows.length);
var new_cell = new_row.insertCell(0);
var new_text = document.createTextNode('New row');
new_cell.appendChild(new_text);
}
Теперь, не обращая внимания на детали, как работает функция/что можно оптимизировать и т.д., Мой реальный вопрос: как я могу вызвать эту функцию из Python/flask?
Дополнительно: как я могу передать данные (например, JSON-структуру) функции JavaScript?
Спасибо заранее!
См. Эту ссылку, которую вы можете использовать ajax для загрузки таблицы без обновления страницы.
вы можете использовать flask jsonify для возврата json из вашего флеш-приложения. См. Эту ссылку и ниже пример из фляги doc
from flask import jsonify
@app.route('/_get_current_user')
def get_current_user():
return jsonify(username=g.user.username,
email=g.user.email,
id=g.user.id)
вернет следующий json
{
"username": "admin",
"email": "admin@localhost",
"id": 42
}