Flask(python)の変数を{{data}}
というテンプレートのhtmlファイルに渡す方法を知っています。しかし、私は、各辞書要素とそのそれぞれのキーと値のペアをjavascriptのリストにアクセスするのに問題があります。python - javascriptでdictのリストを渡すFlask
start.py
def func1():
data = filter() #returns a list of dictionaries
return render_template("template1.html", data=data)
template1.html
<html>
<head>
.....
</head>
<body>
<p>This is html: {{data}}</p>
<script type="text/javascript" src="{{url_for('static', filename='js/add.js') }}"></script>
<script type="text/javascript">
myvar = '{{data}}';
document.write(myvar);
</script>
</body>
</html>
add.js
//code to be written here
myvar
とThis is html:
は、両方とも辞書リスト全体を出力します。私はすでにmyvar[0]
を試しましたが、それは何らかの理由で[
を出力するだけです。私もやった:
myvar = '{{data|tojson}}';
var parsed = JSON.parse(myvar);
document.write(parsed[0]);
しかし、出力は[object Object]
です。
'document.write()'は使わないでください。あなたはそれについてブラウザから警告を受けることがよくあります。 'document.querySelector()'または 'document.getElementById()'を使って '.innerText'をあなたの' parsed [0] 'の値に設定してください。 – Soviut
ああ、そうだ。 'dict'値を使って新しいhtml要素を作成するので、' document.write() 'がベストであると思いました。 –
通常、データをjsonに格納し、それをループして 'document.createElement()'を使って要素を作成します。 – Soviut