私は竜巻ウェブサーバからjavascript handsontableにデータを移動するのに苦労しています。問題は、データを適切にエスケープしたりエンコードしたりすることに関連していると思いますが、わかりません。PythonでTornadoモジュールを使用してhandsontableでカスタムデータをレンダリングする
ここはPythonコードです。私はリストのリストを取り、それをjsonとしてエンコードしています。
class hot_index(tornado.web.RequestHandler):
def get(self):
self.render("hot_tradedata.html",
data=json.dumps([
['', 'Tesla', 'Nissan', 'Toyota', 'Honda', 'Mazda', 'Ford'],
['2017', 10, 11, 12, 13, 15, 16],
['2018', 10, 11, 12, 13, 15, 16],
['2019', 10, 11, 12, 13, 15, 16],
['2020', 10, 11, 12, 13, 15, 16],
['2021', 10, 11, 12, 13, 15, 16]
])
)
if __name__ == "__main__":
app = tornado.web.Application(
handlers=[(r"/hot", hot_index)],
static_path=os.path.join(os.path.dirname(__file__), "static"),
template_path=os.path.join(os.path.dirname(__file__), "templates")
ここではコードがあります。私は、Python関数で定義したデータをテーブルに取り込みたいと思います。
<div id="example1"></div>
<script>
var
data1 = {{data}},
container1 = document.getElementById('example1'),
settings1 = {
data: data1
},
hot1;
hot1 = new Handsontable(container1, settings1);
hot1.render();
</script>
ブラウザのコンソールは、データが正常にhtmlページに渡されたことを示しているが、JavaScriptが入力を好きではないように見えます。私は{{data}}を別に脱出する必要があると思いますか?
<body><div id="example1"></div>
<script>
var
data1 = [["", "Tesla", "Nissan", "Toyota", "Honda", "Mazda", "Ford"], ["2017", 10, 11, 12, 13, 15, 16], ["2018", 10, 11, 12, 13, 15, 16], ["2019", 10, 11, 12, 13, 15, 16], ["2020", 10, 11, 12, 13, 15, 16], ["2021", 10, 11, 12, 13, 15, 16]],
container1 = document.getElementById('example1'),
settings1 = {
data: data1
},
hot1;
hot1 = new Handsontable(container1, settings1);
hot1.render();
</script>
どの方法がベストプラクティスですか?一方的にそれをすることに賛否両論はありますか? – rvictordelta
私は答えを編集しました。 – kwarunek