如何在url中发送批量数据?

时间:2012-03-27 15:40:46

标签: python django get

我必须通过url发送批量数据项才能在服务器端进行处理。

是否可以使用get方法发送?

 list1 = ["string1","string2","string3","string4"]
 list2 = ["domain_string1","domain_string2"]

 url = http://127.0.0.1/search?l=list1&l2=list2

如何传递这些清单?

这些项目列表将动态增长。有时我们将在每个列表中获得10个项目

建议我这样做?

2 个答案:

答案 0 :(得分:4)

通常,最好避免GET请求中的长查询字符串。关于这一点的一个很好的问题是SO问题What is the maximum length of a URL?。你不想超过2000个字符。

如果您的商品始终符合此长度,您可以使用urllib.urlencode转换参数:

>>> list1 = ["string1","string2","string3","string4"]
>>> list2 = ["domain_string1","domain_string2"]
>>> allparams = map(lambda x: ("list1", x), list1)
>>> allparams += map(lambda x: ("list2", x), list2)
>>> import urllib
>>> urllib.urlencode(allparams)
'list1=string1&list1=string2&list1=string3&list1=string4&list2=domain_string1&list2=domain_string2'

相反,您可以使用POST请求。我强烈推荐requests库:

import requests
r = requests.post("http://127.0.0.1/search", data=allparams)

答案 1 :(得分:0)

您可以使用相同的网址变量名称

发送所有内容
"http://localhost/search?urlvar=1&urlvar=2&urlvar=3"

request.GET.getlist( “urlvar”);