Я пытаюсь сделать простой REST api, используя приложение Python для бутылок. Я столкнулся с проблемой получения переменных GET из глобального объекта запроса. Любые предложения о том, как получить это из запроса GET?
Как получить переменные GET в приложении Python Bottle
Ответ 1
Они сохраняются в объекте request.query
.
http://bottlepy.org/docs/dev/tutorial.html#query-variables
Похоже, вы также можете получить к ним доступ, рассматривая атрибут request.query
как словарь:
request.query['city']
Итак, dict(request.query)
создаст словарь всех параметров запроса.
Как отмечает @mklauber, это не будет работать для многобайтовых символов. Похоже, лучший способ:
my_dict = request.query.decode()
Ответ 2
Если вы хотите их всех:
dicc = parse_qs(request.query_string)
Если вы хотите:
one = request.GET.get('one', '').strip()
Ответ 3
Можете ли вы попробовать это:
В этом примере: http://localhost:8080/command?param_name=param_value
В вашем коде:
param_value = request.query.param_name
Ответ 4
из документов
name = request.cookies.name
# is a shortcut for:
name = request.cookies.getunicode('name') # encoding='utf-8' (default)
# which basically does this:
try:
name = request.cookies.get('name', '').decode('utf-8')
except UnicodeError:
name = u''
Поэтому вы можете предпочесть использование атрибута accessor (request.query.variable_name), чем request.query.get('variable_name')
Другой момент заключается в том, что вы можете использовать request.params.variable_name, который работает как для методов GET, так и для POST, чем для того, чтобы переключать request.query.variable_name или request.forms.variable_name в зависимости от GET/POST.