Как отправить массовые данные в URL? - PullRequest
1 голос
/ 27 марта 2012

Я должен отправить массивы данных через 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 ]

4 голосов
/ 27 марта 2012

В общем, лучше избегать длинных строк запроса в запросах GET.Отличным вопросом для справки по этому вопросу является вопрос Какая максимальная длина 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.Я настоятельно рекомендую запросы библиотека:

import requests
r = requests.post("http://127.0.0.1/search", data=allparams)
0 голосов
/ 09 сентября 2014

Вы можете отправить все это с тем же именем переменной URL

"http://localhost/search?urlvar=1&urlvar=2&urlvar=3"

request.GET.getlist ("urlvar");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...