문제: JavaScript를 사용하는 Jinja HTML 템플릿에서 예상치 못한 '&'를 나타내는 SyntaxError가 발생했습니다. token.
원인: Flask의 Jinja 환경은 보안상의 이유로 HTML 템플릿에 렌더링된 데이터를 자동으로 이스케이프합니다. 이스케이프된 문자가 구문 분석을 방해하므로 JSON 개체를 JavaScript에 전달할 때 문제가 됩니다.
해결책: Flask의 tojson 필터 또는 마크업을 사용하여 데이터를 안전한 것으로 표시
하려면 이 문제를 해결하려면 Flask의 tojson 필터를 활용하세요. 이 필터는 데이터를 JSON으로 덤프하고 렌더링 시 안전하다고 표시합니다. JavaScript.
return render_template("template.html", data=tree|tojson)
대체 접근 방식:
var data = {{ tree|safe }};
return render_template("template.html", data=Markup(json.dumps(tree)))
직접 Python 데이터 사용법:
렌더링된 데이터가 JavaScript용이 아닌 경우 JSON 변환이나 필터를 사용하지 않고 Python 데이터를 직접 전달하는 것이 좋습니다.
return render_template("template.html", data=tree)
구현:
진자에서 템플릿:
var data = {{ data }}; for (i in obj) { document.write(obj[i].text + "<br />"); }
또는 JavaScript 구문 분석 없이 Jinja 데이터를 직접 활용할 수 있습니다.
{% for item in tree %} <li>{{ item }}</li> {% endfor %}
위 내용은 Jinja가 렌더링한 JSON 데이터를 구문 분석할 때 JavaScript 구문 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!