Python 在django上,ajax请求上的request.GET[";paramName";]返回列表
这是我的Javascript代码:Python 在django上,ajax请求上的request.GET[";paramName";]返回列表,python,django,jquery,Python,Django,Jquery,这是我的Javascript代码: expr = "A simple string" $.ajax({ type: "GET", url: "/ajaxrequest/get_dt_paragraphs?expr=" + expr, timeout: 8000, success: function(data) { doSomething(); } }); 在我的django视图中,我编写了以下方法: def get_dt_paragraphs(request):
expr = "A simple string"
$.ajax({
type: "GET",
url: "/ajaxrequest/get_dt_paragraphs?expr=" + expr,
timeout: 8000,
success: function(data) { doSomething(); }
});
在我的django视图中,我编写了以下方法:
def get_dt_paragraphs(request):
if request.method == 'GET':
my_string = request.GET["expr"]
# print on the console for debugging purposes.
print my_string
# Do other stuff
控制台上的输出是[u“A simple string”],因此我发现参数名返回一个数组。当然,我可以编写request.GET[“expr”][0]来获取字符串,但我想知道为什么我会得到一个列表而不是字符串,以及如何避免这种情况以编写更好、更优雅的代码。GET和POST对象属于QueryDict类,该类设计用于处理每个键的多个值() 如果你确定你只想要一个值,我建议
request.GET.get('expr', [])[:1]
如果“expr”不可用,则返回空数组,但无论如何这应该是惯用的Python,因为[]的布尔值为False。GET和POST对象属于QueryDict类,该类用于处理每个键的多个值() 如果你确定你只想要一个值,我建议
request.GET.get('expr', [])[:1]
如果“expr”不可用,则返回空数组,但无论如何这应该是惯用的Python,因为[]的布尔值为False。实际上,在读取了相同文档中的更多内容后,QueryDict的get方法已被重写以返回最后一个值,因此不需要slice。因此,您可以使用任何您想要的回退:request.GET.GET('expr',fallback)。实际上,在读取了相同文档中的更多内容后,QueryDict的GET方法已经被覆盖以返回最后一个值,因此不需要slice。因此,您可以使用任何您想要的回退:request.GET.GET('expr',fallback)