Метод getlist
Метод getlist применяется к объекту
MultiDict. В отличие от метода get,
который возвращает только первое значение,
getlist собирает все значения, связанные
с одним ключом, и возвращает их в виде
списка. Первым параметром передаётся
имя ключа. Вторым необязательным параметром
можно задать значение по умолчанию, которое
вернётся, если ключ отсутствует.
Синтаксис
MultiDict.getlist(key, [default])
Пример
Давайте создадим объект MultiDict
и добавим несколько значений для ключа
'user':
from bottle import MultiDict
md = MultiDict()
md['user'] = 'abcde'
md.append('user', 'hello')
md.append('user', 'article')
res = md.getlist('user')
print(res)
Результат выполнения кода:
['abcde', 'hello', 'article']
Пример
Если ключ отсутствует, метод возвращает пустой список. Давайте проверим:
from bottle import MultiDict
md = MultiDict()
md['user'] = 'abcde'
res = md.getlist('unknown')
print(res)
Результат выполнения кода:
[]
Пример
Вторым параметром можно передать значение по умолчанию. Давайте укажем его:
from bottle import MultiDict
md = MultiDict()
md['user'] = 'abcde'
res = md.getlist('unknown', ['hello'])
print(res)
Результат выполнения кода:
['hello']
Пример
Метод getlist удобно применять
для обработки данных формы, где один
и тот же ключ может повторяться несколько раз:
from bottle import Bottle, request
app = Bottle()
@app.route('/')
def index():
items = request.forms.getlist('item')
return {'items': items}
При отправке формы с несколькими
полями item клиент получит
все переданные значения: