在jinja模板中将python列表传递给JavaScript

时间:2019-11-16 07:16:47

标签: javascript python flask jinja2

我正在使用flask构建CRUD应用程序。我已经完成了创建,读取和删除操作。剩下更新部分。要更新的记录将以html格式显示,以便可以编辑显示的数据库记录。

我的问题是,当数据库记录以表格形式显示时,我希望根据数据库记录中的值来选中一个复选框或选择一个下拉列表项。

是否可以将数据库查询的结果(1条记录)作为JavaScript数组传递给JavaScript,获取JavaScript数组中的项目并在JavaScript语句中使用它们来控制复选框?

@app.route('/update/<int:id>/')
def update(id):

    cur=mysql.connection.cursor()
    cur.execute("SELECT * FROM profiles where entity_id = %s", (id,))
    row=list(cur.fetchall())
    cur.close()
    return render_template('profile-update.html', data = row)

下面是模板

<!DOCTYPE html> 
<html>
<head>

</head>
<body class="hold-transition skin-blue layout-top-nav">

  <div class="form-check form-check-inline">
    <input class="form-check-input" type="radio" name="inlineRadioOptions"             
     id="inlineRadio1" value="option1">
    <label class="form-check-label" for="inlineRadio1">company</label>
  </div>
  <div class="form-check form-check-inline">
    <input class="form-check-input" type="radio" name="inlineRadioOptions"
     id="inlineRadio2" value="option2">
    <label class="form-check-label" for="inlineRadio2">partnership</label>
  </div>
  <div class="form-check form-check-inline">
    <input class="form-check-input" type="radio" name="inlineRadioOptions" 
     id="inlineRadio3" value="option3"`enter code here`>
  </div>
</body>
</html>

我对此进行了广泛研究,但是建议的解决方案似乎无效

1 个答案:

答案 0 :(得分:-1)

您可以使用jinja markup使用传递到模板中的数据。

/templates/demo_template.html

*{{data}}*

/main.py

import flask

app = flask.Flask(__name__)

@app.route('/demo')
def demo():
    data = [dict(greeting='hello!'),dict(greeting='world!')]
    return flask.render_template('demo_template.html', data=data)

if __name__ == "__main__":
    app.run()

the output in browser

相关问题