【发布时间】:2011-08-19 11:43:57
【问题描述】:
我正在做一个 Django 项目,其中一位前端人员询问,对于我们的一个 ajax 请求,他希望我返回一个 JSON 字典,其中一个键是来自模板。所以,例如:
d = {
"hits": 22,
"page": 3,
"somehhtml": """<div id='item1'>Something</div><div id='item2'>More Stuff</div>
<p>More after some linebreaks.</p>"""
}
当我使用 simplejson.dumps 来返回它时,它正在转义 HTML,大概是为了使它成为有效的 JSON,并带有大量的 \n 换行符,并且引号字符被转义了。
作为 hack,我通过在使用 dumps() 将其序列化之前将字符串模板替换字符添加到 dict 中,然后在将其发送回浏览器之前将其替换为呈现的模板来使其工作。显然,这很可怕,而且肯定不是正确的做法。
那么,处理这个问题的正确方法是在客户端使用一些 jQuery/JS 反序列化方式,还是我需要在 Python 端编写自己的序列化器来避免某些事情?我尝试将它传递给 JS 中的 eval(),但这给了我一个 SyntaxError。
我目前正在做的事情(即不逃避字符)是一个坏主意,是否有实际原因? (帮助我解释,不是因为我认为我不应该改变它)。
谢谢!
卢多。
【问题讨论】:
标签: jquery python ajax django json