我在后端使用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.log(test);
}
</script>
正如我所说的,所有这一切都在起作用我现在只想将其改为:
data[0][data[0]['identifier'] == test]['Name'].iloc[0]
我怎样才能做到这一点?
您可以配置一个单独的API端点,该端点仅返回已过滤的数据框,并让Javascript查询端点并使用响应来修改您的页面。