2014-03-13 2 views
2

이 같은 JavaScript를 통해 세션 쿠키를 설정하고있다 : 나는 파이썬 장고의 쿠키 값을 검색 할 때디코드 장고 세션 쿠키 값

$('.content li a').on('click', function(e) { 
     $.cookie.json = true; 
     var cookie_value = {postid: 1234, commentid: 8999}; 
     $.cookie('my_cookie_key', cookie_value, {path: '/'}); 
    }); 

, 내가 얻을이 같은 인코딩 문자열 : '"%7B%22postid%22%3A1234%2C%22commentid%22%3A8999%7D"'

사용

request.COOKIES.get('my_cookie_key')

내가 쉽게 my_cookie_obj.postid 같은 쿠키의 모든 값을 검색 할 수 있도록 내가 dict 목적으로 바꿀 수 있습니까? 문자열 디코딩을 시도했지만 올바르게 수행하고 있다고 생각하지 않습니다.

답변

4

값은 단순히 인코딩 된 퍼센트입니다. 적절한 디코딩 기능 만 사용하면 저장 한 내용을 다시 가져와야합니다.

>>> import json 
>>> import urlparse 
>>> s = urlparse.unquote("%7B%22postid%22%3A1234%2C%22commentid%22%3A8999%7D") 
>>> s 
'{"postid":1234,"commentid":8999}' 
>>> v = json.loads(s) 
>>> v['commentid'] 
8999 

는 사용자가 모든 쿠키 값을 조작 할 수 있습니다, 그래서 그들은 신뢰할 수없는 내용이기 때문에 값을 사용하여/구문 분석 할 때 알아서 않도록주의 마십시오.