#python #html
#python #HTML
Вопрос:
У меня есть некоторый html-код, который содержит форму. При отправке он отправляет post-запрос на сервер. Форма имеет различные входы, каждый с именем и значением, однако есть несколько входов с одинаковым именем.
Вот пример того, что я имею в виду:
<form action="http://example.com" method="post">
<input name="name" value="val">
<input name="name" value="val">
<input type="submit">
</form>
Во-первых, я не понимаю, как могут быть два значения с одинаковым именем. Пожалуйста, обратите внимание, что я попытался удалить один из экземпляров <input name="name" value="val">
, однако это возвращает ошибку, поэтому кажется, что необходимы оба экземпляра.
Во-вторых, я пытаюсь преобразовать это в запрос python, используя библиотеку запросов.
У меня есть следующий запрос:
requests.get(url = URL, params = PARAMS).json()
Где PARAMS — это словарь различных входных данных. Например:
PARAMS = {'name':"val"}
Однако, будучи словарем, я не могу иметь несколько экземпляров одного и того же значения. Как мне заставить это работать? Спасибо
Ответ №1:
Если есть дублирующиеся имена, то значения будут в массиве с именем. Приведенная ниже демонстрация отправляется на тестовый сервер в реальном времени, и ответ направляется на <iframe>
<form action="https://httpbin.org/post" method="post" target="response">
<input name="name" value="val">
<input name="name" value="val">
<input type="submit">
</form>
<iframe name='response'></iframe>
Ответ №2:
То, что вы ищете, — это использовать входные массивы. С их помощью у вас может быть много входов с одинаковым именем, а на стороне сервера данные будут обрабатываться как массив. Таким образом, HTML будет:
<form action="http://example.com" method="post">
<input name="name[]" value="val1">
<input name="name[]" value="val2">
<input type="submit">
</form>