如何使用循环显示querydict

gad*_*dss 4 python django

我正在创建一个显示值和querydict键的函数.例如,如果我在GET请求上获得了QueryDict.

<QueryDict: {u'val1':[u'aa'],u'val2':[u'ab'],u'val3':[u'ac'],u'val4':[u'ad'], ... u'valn':[u'an'] ...}>
Run Code Online (Sandbox Code Playgroud)

我的功能现在就像这样:

def displayQueryDicts(self, request):
    for x in request:
     print x # this will return the val1, val2, val3, val4, ..., valn
     print x .value() # I don't know how to print all the values
Run Code Online (Sandbox Code Playgroud)

我现在的问题是,如何打印这样的值...

val1   aa
val2   ab
val3   ac
val4   ad
...    ...
valn   an
Run Code Online (Sandbox Code Playgroud)

ale*_*cxe 6

根据文件:

HttpRequest.GET

类似字典的对象,包含所有给定的HTTP GET参数.

你可以像普通的python一样迭代它dict:

for key, value in request.GET.iteritems():
    print "%s %s" % (key, value)
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.


Old*_*ity 6

在python3中你会做

 for key, value in request.GET.items():
        print ("%s %s" % (key, value))
Run Code Online (Sandbox Code Playgroud)


Apo*_*ata 5

请注意,aQueryDict只是一个类似字典的对象。有一个重要的区别。来自文档

在 HttpRequest 对象中,GET 和 POST 属性是 django.http.QueryDict 的实例,django.http.QueryDict 是一个类似字典的类,定制用于处理同一键的多个值。这是必要的,因为某些 HTML 表单元素(尤其是 )会为同一键传递多个值。

如果要迭代请求的所有参数,并且有多个具有相同的键,则需要QueryDict.lists()在 Python 3 或QueryDict.iterlists()Python 2 中使用。有关输出格式,请参阅文档。