Python Django从前端返回字典?
我在Django视图中从前端到后端传递字典。设置如下所示:Python Django从前端返回字典?,python,django,django-models,django-views,django-templates,Python,Django,Django Models,Django Views,Django Templates,我在Django视图中从前端到后端传递字典。设置如下所示: $.ajax({ type: "POST", url: '/my/url', data: { 'patients': '{{ appointments.appointments.items }}' }, dataType: 'json', async: false,
$.ajax({
type: "POST",
url: '/my/url',
data: {
'patients': '{{ appointments.appointments.items }}'
},
dataType: 'json',
async: false,
success: function (data) {
console.log("yay")
}
});
这将传回一个名称字典,等等,然后我将在python后端检索它,如下所示:
if request.method == "POST":
patients = request.POST.get("patients", None)
print("patients are", patients)
但是,当我这样做并打印出patients dict()而不是得到一个实际的字典时,我会得到如下字符串:
$.ajax({
type: "POST",
url: '/my/url',
data: {
'patients': '{{ appointments.appointments.items }}'
},
dataType: 'json',
async: false,
success: function (data) {
console.log("yay")
}
});
dict项目([(153,{&&&&&';个人&&';塞缪尔&&';时间&';日期时间.日期时间(2021,4,22,17,0,tzinfo=UTC),&&';数字&&&&&&35x27;第一&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
这不符合字典格式/甚至不允许json解析等
我有什么地方做错了吗?{{appoinces.appoinces.items}}在get请求期间从后端传递到我的HTML模板页面,我在同一个文件中使用JavaScript访问它
如果您有任何建议,我们将不胜感激。我认为,可以通过添加Eval方法来解决
patients = eval(request.POST.get("patients", None))
不需要时,不要在答案中建议危险的事情,尽管|safe
也很危险(潜在的XSS攻击),但eval
更危险。更不用说这并不能解决问题。好的@AbdulAzizBarkat,谢谢你的建议。如果它不起作用,我想知道为什么它很危险。您能告诉我原因吗。eval
允许您执行任意代码。考虑到这个字符串来自用户,用户可以在这里发送几乎任何代码,它将被执行,对吗?我建议您不要使用|safe
方法,因为它仍然允许人们执行XSS攻击。最好不要渲染成javascript。看看我的这个(我不发了,因为它只是一个复制品)。啊酷,谢谢!