Flask의 Jinja 환경은 보안 문제를 방지하기 위해 HTML 템플릿에서 렌더링된 데이터를 자동으로 이스케이프합니다. JSON으로 처리할 Python 개체를 전달할 때 JavaScript의 구문 오류를 방지하려면 이 이스케이프를 올바르게 처리하는 것이 중요합니다.
Python 개체를 안전한 JSON으로 렌더링하려면 tojson 필터:
return render_template('tree.html', tree=tree)
템플릿에서 다음을 사용합니다.
var tree = {{ tree|tojson }};
이것은 안전하게 데이터를 JSON으로 덤프하고 이스케이프를 방지하기 위해 안전한 것으로 표시합니다.
JSON이 이미 문자열에 덤프된 경우 안전 필터를 사용하여 표시합니다. 렌더링하기에 안전합니다:
return render_template('tree.html', tree=json.dumps(tree))
템플릿에서 사용:
var tree = {{ tree|safe }};
또는 렌더링하기 전에 마크업에서 문자열을 래핑할 수 있습니다.
return render_template('tree.html', tree=Markup(json.dumps(tree)))
템플릿에서 값을 다음과 같이 사용할 수 있습니다. :
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 구문 오류를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!