Flask 경로에서 Jinja 템플릿으로 데이터를 JSON으로 전달하고 JavaScript를 사용하여 반복하려고 할 때 "SyntaxError: 예기치 않은 토큰 '&'"이 발생할 수 있습니다. 이 오류는 렌더링된 데이터에서 JSON.parse를 호출할 때 발생합니다.
이 문제는 보안 조치로 HTML 템플릿에서 렌더링된 데이터를 자동으로 이스케이프하는 Flask의 Jinja 환경에서 발생합니다. 이 이스케이프된 데이터를 JavaScript에서 JSON으로 사용하려고 하면 구문 오류가 발생합니다.
이 문제를 해결하기 위해 Flask는 tojson 필터를 제공합니다. 이 필터는 자동으로 Python 데이터를 JSON으로 덤프하고 JavaScript로 렌더링해도 안전하다고 표시합니다.
예:
return render_template("tree.html", tree=tree)
var tree = {{ tree|tojson }};
안전하게 사용하기 필터:
JSON을 렌더링하지 않는 경우 안전 필터를 사용하여 Jinja가 데이터를 탈출하는 것을 방지할 수 있습니다.
예:
var tree = {{ tree|safe }};
사용 마크업:
렌더링 전에 데이터를 마크업으로 래핑할 수도 있으며 이는 안전 필터를 사용하는 것과 같습니다.
예:
var tree = {{ tree }};
JavaScript 사용을 위한 데이터가 아닌 경우 하지만 Jinja의 경우 tojson 필터가 필요하지 않습니다. Python 데이터를 직접 전달하고 템플릿의 다른 데이터로 사용합니다.
예:
return render_template("tree.html", tree=tree)
{% for item in tree %} <li>{{ item }}</li> {% endfor %}
위 내용은 Jinja가 렌더링한 JSON 데이터를 구문 분석할 때 JavaScript의 SyntaxError를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!