我必须通过url发送批量数据项才能在服务器端进行处理。
是否可以使用get方法发送?
list1 = ["string1","string2","string3","string4"]
list2 = ["domain_string1","domain_string2"]
url = http://127.0.0.1/search?l=list1&l2=list2
如何传递这些清单?
这些项目列表将动态增长。有时我们将在每个列表中获得10个项目
建议我这样做?答案 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”);