2014-06-24 3 views
0

병과 파이썬 2.7을 사용하고 있습니다.JavaScript 변수에서 사용하기 위해 파이썬 객체를 어떻게 전송할 수 있습니까?

병 변수의 컨트롤러에서 JavaScript 변수로 사용되는보기 페이지로 목록 변수를 전달하고 싶습니다.

@app.route('/foo'): 
def foo(): 
    l = [{'name':'Matthew'}] 
    return template('foo', l=l) 

는 I도 수행했습니다

l = json.dumps([{'name':'Matthew'}] 

내 콘솔 내가 구문 오류를 말합니다하지만 내보기

<script type="text/javascript"> 
    $(document).ready({ 
     var l = {{l}} 
     l.forEach(function(entry) { 
      console.log(entry); 
     }); 
    }); 
</script> 

에서. HTML을 열면 다음과 같이 렌더링됩니다.

var l = [{&quot;name&quot;: &quot;Matthew&quot;] 

JavaScript 변수에서 사용하기 위해 파이썬 개체를 전송하려면 어떻게해야합니까?

답변

1

XSS를 방지하기 위해 {{}} 사이의 대체물은 HTML Entity encoded입니다. 합니다 (SimpleTemplate 엔진을 통해)

var l = {{!l}}; 
+0

그것이 안전하지 않은되어 그것을 위해

var l = {{!l}}; 

워드 프로세서 : 당신은 같은 !을 사용하여 일시적으로 탈출 해제 할 수 있습니다? –

+0

'l'이 사용자 생성 콘텐츠 인 경우 안전하지 않습니다. 'l'이 유효한 JSON 만 포함한다는 것을 알고 있다면 안전하지 않습니다. –

1

병 XSS 취약점을 방지하기 위해 출력 탈출되어

이보십시오. 이것은 일반적으로 좋습니다. 나는이 작업을 수행 할 경우 here

+0

이렇게하면 안전하지 않습니까? –

+0

가장 안전한 가정이므로, 기본적으로 이스케이프 처리됩니다. 데이터의 출처에 따라 다를 수 있습니다. 개발자 또는 어쩌면 관리자와 같은 신뢰할 수있는 출처에서 나온 것이라도 괜찮습니다. 그렇지 않으면 아니오. –

관련 문제