как перебирать переменные поста httprequest в python

Как вы можете перебирать почтовые переменные HttpRequest в Django?

У меня есть

for k,v in request.POST:
     print k,v

который не работает должным образом.

Спасибо!


person icn    schedule 21.07.2010    source источник


Ответы (1)


request.POST — это объект, похожий на словарь, содержащий все заданные параметры HTTP POST.

Когда вы перебираете request.POST, вы получаете только ключи.

for key in request.POST:
    print(key)
    value = request.POST[key]
    print(value)

Чтобы получить ключи и значения вместе, используйте items метод.

for key, value in request.POST.items():
    print(key, value)

Обратите внимание, что request.POST может содержать несколько элементов для каждого ключа. Если вы ожидаете несколько элементов для каждого ключа, вы можете использовать lists, который возвращает все значения в виде списка.

for key, values in request.POST.lists():
    print(key, values)

Для получения дополнительной информации см. документацию Django для QueryDict.

person Alasdair    schedule 21.07.2010
comment
Лучше: for key, value in request.POST.iteritems() - person Will McCutchen; 22.07.2010
comment
Обратите внимание, что объекты «QueryDict» не имеют атрибута «iteritems» в python 3. - person Escher; 04.03.2016
comment
Даже в обычных словарях нет метода iteritems() в Python 3. iteritems() есть только в Python 2.x. Это items() в Python 3. Это также было недавно удалено в Django, я думаю, что в 1.9 все еще было itemitems() даже в Python 3. - person Apollo Data; 21.02.2017