我想迭代查询对象来处理并相应地发送响应。你知道吗
这是有效的JavaScript部分
var msg = $.ajax({type: "GET", url: "jsonview/", async: false}).responseText;
document.write(msg);
这是工作django视图.py你知道吗
from django.http import JsonResponse
def jsonview(request):
return JsonResponse({"foo":"bar", "spam" : "no"})
我得到结果{"foo": "bar", "spam": "no"}
但我想这样做(不要问为什么)。你知道吗
var msg = $.ajax({
type: "GET",
url: "jsonview/",
data:{["foo","spam"]},
async: false
}).responseText;
document.write(msg);
def jsonview(request):
spam_dict = {"foo":"bar", "spam" : "no"}
new_dict = {}
for item in request.GET.get('data'):
new_dict[item] = spam_dict[item]
return JsonResponse(new_dict)
desired -> {"foo":"bar", "spam" : "no"}
我尝试了各种方法,比如
for item in request.GET:
for item in request.GET.get('data')
等等
request.GET是一个类似字典的对象,可以像任何其他Python字典一样迭代:
简而言之,只需使用
for key, val in request.GET.items():
在dict上迭代,并在key
和val
变量中获取每个键和值。你知道吗附加说明:
for item in request.GET:
只是迭代字典的键for item in request.GET.get('data'):
尝试对dict中与'data'
键相关联的值进行迭代(该键不存在)request.GET.items()
返回一个迭代器,以元组的形式获取每个键/值对。您可以通过将元组存储在一个变量中来检索元组,比如for key_value_pair in request.GET.items():
,然后用key_value_pair[0]
访问键,用key_value_pair[1]
访问值。但是用for key, val in request.GET.items():
映射变量中元组的每个值要方便得多你能做到的
然后在视图中
请求中没有
data
键;这只是jQuery用来将数据值传递给ajax函数的参数。你知道吗还要注意的是,JS中的
{["foo","spam"]}
的计算结果只有["foo","spam"]
;不能没有键的对象,它只是一个数组。你知道吗因为这不是表单编码的数据,所以不能在Python中使用
request.GET
或request.POST
。您可以从request.body
读取这些数据,但最好将其作为JSON传递并在另一端解析。所以,在JS中:在Python中:
相关问题 更多 >
编程相关推荐