저는 Python 코드를 사용하여 jinja를 사용하여 Flask의 템플릿에 데이터를 보냅니다. HTML로 찾은 코드에 액세스 할 수 있지만 Javascript로 데이터를 표시하려고하면 작동하지 않습니다.jinja를 사용하여 데이터를 자바 스크립트로 전송
name = "Steve"
return render_template('simple.html',data=json.dumps(name))
그리고 내 simple.html 코드에서 HTML 본문 : 예를 들어 가 여기 내 파이썬 코드의 예기치 않은 토큰 '&'
<script>
var name = {{ data }};
alert(name);
</script>
내 콘솔의 오류가 구문 에러 "라는 "
나는이 문제를 전에 보았다. 나는 그것을 어떻게 해결할 지 잊고있다.
모든 유효한 JSON이 유효 JS이기 때문에 당신은 실제로 완전히 그냥 수행 'JSON.parse' 단계를 건너 뛸 수 있습니다 'var data = {{data | tojson}}; –
이 작업을 수행하면 코드를보다 안전하게 보이게 할뿐만 아니라 json 문자열을 JS 객체로 파싱합니다. 그리고 JS 객체는 파이썬에서 dict와 동등합니다. – aGuegu
JSON 객체가 스크립트 블록에 쓰여질 때 ('var data = {{data | tojson}}'처럼) 브라우저에서 JavaScript로 해석됩니다. JSON은 JavaScript의 하위 집합이므로 스크립트 블록에 쓰여진 "JSON"은 브라우저에서 일반 JavaScript 객체로 해석됩니다 (JSON은 데이터이므로 모든 사용자를 작성하는 것이 아니라 안전합니다). - 제공 한 문자열을 안전하지 않은 스크립트 블록에 넣습니다. "JSON"을 JavaScript 문자열로 JSON.parse에 전달하는 것은 불필요한 단계를 추가하는 것입니다. 말이 돼? –