나는 토네이도 웹 서버에서 자바 스크립트 핸즈 터블로 데이터를 이동하는 데 어려움을 겪고있다. 나는 문제가 내 데이터를 적절하게 이스케이프 또는 인코딩하는 것과 관련 있다고 생각하지만, 나는 그것을 이해할 수 없다.python의 Tornado 모듈을 통해 handsontable에서 사용자 정의 데이터 렌더링
다음은 파이썬 코드입니다. 목록 목록을 가져 와서 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")
여기 핸즈프렌 코드가 있습니다. 내 파이썬 함수에서 정의한 데이터로 테이블을 채우고 싶습니다.
<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 페이지에 전달 된 것을 나타냅니다 만, 자바 스크립트가 입력을 좋아하지 않는 것 같습니다. 나는 {{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