Я унаследовал более крупный программный проект, используя python / flask в бэкэнде и HTML / Javascript во фронтенде. Теперь я хочу реализовать некоторую интерактивность на одном из веб-сайтов. Я успешно передал фрейм данных на веб-страницу и могу отобразить его содержимое. У меня есть несколько фильтров в виде кнопок для переключения между различными представлениями. Я могу получить доступ к этим значениям фильтра на самой веб-странице. Как я могу теперь передать эти новые значения в фрейм данных, чтобы отфильтровать его без повторного рендеринга всей страницы? Обратите внимание, что я использую template.render () вместо render_templates (), так как в проекте нет папки шаблонов, и для изменения этого потребуется слишком большая реструктуризация. Это соответствующая часть Python:
@app.route('/tagging/OverviewPerDoc.html')
def analysis():
x = <function which returns a pandas dataframe>()
tempid = globalxmlid
datatuple = [x, tempid]
filetoopen = os.path.join(os.getcwd(), config.filepaths.overviewperdoc)
with open(filetoopen) as fi:
template = Template(fi.read())
return template.render(data = datatuple)
Это часть веб-сайта:
<body>
(...)
<button id = "magicbutton" class = "btn btn-primary my-group-button" type = "submit" style = "margin-right:5px;" value = "Show">Show</button>
(...)
{% block content %}
(...)
</div> <br> <br> <br>
<h1 align = "center">{{data[0][data[0]['identifier'] == data[1]]['Name'].iloc[0]}}</h1>
(...)
<div class = "container">
<table>
<tr>
<th></th>
(...)
<tr>
<td>Value</td>
<td>{{data[0][data[0]['identifier'] == data[1]]['Value'].iloc[0]}} {{data[0][data[0]['identifier'] == data[1]]['currency'].iloc[0]}}</td>
<td>100%</td>
</tr>
(...)Нажимая на мою тестовую кнопку, я могу вывести ее значение на консоль.
<script>
function magicfunction()
{
var test = savethecurrentxml;
console.info(test);
}
</script>Как я уже сказал, все это работает, теперь я просто хочу изменить это на что-то вроде:
data[0][data[0]['identifier'] == test]['Name'].iloc[0]
Как я могу этого добиться?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете настроить отдельную конечную точку API, которая будет возвращать только отфильтрованный фрейм данных, а Javascript запрашивает конечную точку и использует ответ для изменения вашей страницы.
Ой, подождите ... Думаю, я понимаю, что вы предлагаете. Хотя мне нужно понять, как это сделать. Но спасибо, это все же помогло мне «найти правильный путь»
Хорошо, но это будет означать повторный рендеринг всей страницы, где результат будет отображаться только в том случае, если я перезагружу его? Мне нужно что-то вроде return jsonify (mydataframe), которое затем мгновенно отображается на моем веб-сайте без его перезагрузки ...