从 Flask/python 调用 Javascript 函数

wes*_*112 6 javascript python flask

我非常了解 Python,但我对网络内容和 JavaScript 还是陌生的。我在网站 (Flask) 上找到了一篇关于从按钮调用 python 函数的帖子。

我想执行以下操作: 我想向 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>
Run Code Online (Sandbox Code Playgroud)

在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);
}
Run Code Online (Sandbox Code Playgroud)

现在忽略函数如何工作的细节/可以优化什么等。我真正的问题是:如何从 Python/flask 调用这个函数?

另外:如何将数据(比如 JSON 结构)传递给 JavaScript 函数?

提前谢谢了!

sge*_*hew 1

请参阅此链接,您可以使用 ajax 加载表格而无需刷新页面。

您可以使用flask jsonify从flask应用程序返回json。请参阅此链接和下面来自 Flask 文档的示例

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)
Run Code Online (Sandbox Code Playgroud)

将返回以下 json

{
    "username": "admin",
    "email": "admin@localhost",
    "id": 42
}
Run Code Online (Sandbox Code Playgroud)