Flask 경로에서 Jinja 템플릿으로 JSON 데이터를 전달할 때 브라우저에서 다음과 같은 오류가 발생할 수 있습니다. SyntaxError: Unexpected token '&'를 발생시킵니다. 데이터를 렌더링할 때 속성 이름이 필요합니다. 성공적인 템플릿 처리를 위해서는 JavaScript에서 렌더링된 JSON 데이터를 처리하는 방법을 이해하는 것이 중요합니다.
Flask의 Jinja 환경은 보안 취약점을 방지하기 위해 HTML 템플릿에서 렌더링된 데이터를 자동으로 이스케이프합니다. JSON으로 처리해야 하는 데이터의 경우 Flask는 데이터를 JSON으로 덤프하고 안전한 것으로 표시하는 tojson 필터를 제공합니다. tojson 필터를 사용하면 데이터가 이스케이프되지 않고 렌더링되어 JavaScript에서 올바르게 구문 분석될 수 있습니다.
tree = get_nodes("Root") return render_template("folder.html", data=tree|tojson)
var tree = {{ tree|tojson }};
또는 이전 Flask 버전에서는 안전 필터를 사용하여 안전한 데이터:
var tree = {{ tree|tojson|safe }};
데이터가 이미 JSON에 덤프된 경우 안전 필터를 사용하여 이스케이프 없이 렌더링에 안전한 것으로 표시할 수 있습니다.
return render_template('tree.html', tree=json.dumps(tree))
var tree = {{ tree|safe }};
마크업에서 JSON 문자열을 래핑하는 것도 안전 필터를 사용하는 것과 동일합니다.
return render_template('tree.html', tree=Markup(json.dumps(tree)))
var tree = {{ tree }};
데이터가 전달되지 않는 경우 JavaScript이지만 Jinja에서 사용되는 경우 JSON 렌더링을 생략하고 Python 데이터를 직접 사용할 수 있습니다.
return render_template('tree.html', tree=tree)
{% for item in tree %} <li>{{ item }}<li> {% endfor %}
위 내용은 Jinja 템플릿에서 JSON 데이터를 렌더링할 때 내 JavaScript에 SyntaxError가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!