如何在Python中获取请求的值?

时间:2017-06-26 22:43:12

标签: python django

当我打印到达POST的request时,我得到了这个结果。

<QueryDict: {u'form_values': [u'nombre=Juan&apellidos=Perez&correo=juan@email.com&confiCorreo=juan@email.com&telefono=5598764&celular=8971265256&calle_numero=Calle+#10&colonia=San+Pablo&municipio=&estado=&pais=&cPostal=&razonS=&rfc=&callenumero=&colonia=&municipio=&estado=&codPos='], u'pass': [u'k7iwriilqm66mtnu2m1x'], u'csrfmiddlewaretoken': [u'kkxdVbDzPXhfDazzSVvIvAYizExoRSFR'], u'clabe': [u'8jO9ChGsKXJfrBtb4vBMsxQKdA8L7Y0h']}>

如何单独获取来自form_values的值(nombreapellidos)?

2 个答案:

答案 0 :(得分:1)

您好像在接收一个URL编码的查询字符串在<{strong> form_values网址参数中。如果是这样,您可以使用urlparse标准库解析该查询字符串,如下所示:

import urlparse
url_str = query_dict["form_values"][0]
form_dict = urlparse.parse_qs(url_str)
print(form_dict)
# {'correo': ['juan@email.com'], 'calle_numero': ['Calle #10'], 'colonia': ['San Pablo'], 'confiCorreo': ['juan@email.com'], 'apellidos': ['Perez'], 'celular': ['8971265256'], 'nombre': ['Juan'], 'telefono': ['5598764']}

urlparse.parse_qs接受一个查询字符串并返回一个本地字典,其中包含键到列表值的映射。如果某个键在查询字符串中出现多次,则该列表将包含多个值。如果需要,请参阅docs for more details

答案 1 :(得分:0)

这应该有效:

d = dict(queryDict.iterlists())
formvalues = d['form_values']
queries = formvalues.split('&')
nombre = queries[0].split('=')[1]
apellidos = queries[1].split('=')[1]

您还可以查看this answer