Получение массива в качестве параметров запроса GET в Python - PullRequest
41 голосов
/ 29 октября 2011

Я знаю, что в php я мог бы просто использовать $_GET['key1']['key2'] для извлечения данных GET, которые отправляются в виде массива, но возможно ли это в Python, поскольку я просто получаю строку, а она не распознается как массив / список.

Я использую колбу / werkzeug, если это имеет значение.

Ответы [ 3 ]

54 голосов
/ 29 октября 2011

request.args - это экземпляр MultiDict ( MultiDict , api ) запроса колбы.

request.args[key] ## returns a single value, the first if there are multiple
request.args.getlist(key) ## returns a list

Если вы хотите отправить структуры более сложные, чем можнозакодированы с использованием простого ключа: vals, рассмотрите возможность отправки json-закодированного объекта.

Также посмотрите на сериализацию рекурсивных параметров jQuery pattern и jquery-unparam lib, которыеможет десериализовать его.

45 голосов
/ 29 октября 2011

Глубокий анализ имен аргументов уникален для PHP AFAIK.

Если вам нужен простой список, просто передайте несколько параметров с одинаковым именем и используйте request.args.getlist(<paramname>) ( документация ).

В противном случае вам придется самостоятельно проанализировать строку запроса.

0 голосов
/ 15 декабря 2017
request.query_params

Возвращает список пар всех значений ключа для всех параметров запроса на получение

Django, DRF

...