문제:
Jinja에서 렌더링된 JSON 데이터를 활용하려고 합니다. JavaScript 내의 템플릿이 "SyntaxError: 예기치 않은 토큰 '&'"과 함께 실패합니다. 오류. 이 렌더링된 JSON 데이터를 JavaScript에서 어떻게 효과적으로 사용할 수 있습니까?
해결책:
Flask의 Jinja 환경은 보안을 위해 본질적으로 HTML 템플릿에서 렌더링된 데이터를 이스케이프합니다. JSON으로 해석될 Python 객체를 전달할 때 tojson 필터를 사용하여 데이터를 안전하게 변환하고 표시해야 합니다.
return render_template('tree.html', tree=tree)
var tree = {{ tree|tojson }};
JSON이 렌더링되지 않거나 이전에 다음으로 변환된 경우 문자열, 안전 필터 또는 마크업 래퍼를 활용하여 안전을 보장할 수 있습니다. 렌더링:
# already dumped to json return render_template('tree.html', tree=json.dumps(tree))
var tree = {{ tree|safe }};
# already dumped and marked safe return render_template('tree.html', tree=Markup(json.dumps(tree)))
var tree = {{ tree }};
또는 데이터가 Jinja 내에서만 활용되고 JavaScript로 전달되지 않는 경우 JSON이 필요하지 않습니다. 원본 Python 데이터를 템플릿에서 직접 전달하고 사용할 수 있습니다.
return render_template('tree.html', tree=tree)
{% for item in tree %} <li>{{ item }}</li> {% endfor %}
위 내용은 JavaScript의 Jinja 템플릿에서 렌더링된 JSON 데이터를 안전하게 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!