如何在python瓶子应用程序中检索GET vars

如何在python瓶子应用程序中检索GET vars,python,bottle,query-parameters,Python,Bottle,Query Parameters,我正在尝试使用Python瓶子应用程序制作一个简单的RESTAPI。 我在从请求全局对象检索GET变量时遇到了一个问题。 如何从GET请求中检索此信息,有什么建议吗?这些建议存储在请求.query对象中 您似乎还可以通过将请求处理为字典来访问它们。query属性: request.query['city'] 因此,dict(request.query)将创建一个包含所有查询参数的字典 正如@mklauber所指出的,这不适用于多字节字符。看起来最好的方法是: my_dict = reques

我正在尝试使用Python瓶子应用程序制作一个简单的RESTAPI。 我在从请求全局对象检索GET变量时遇到了一个问题。
如何从GET请求中检索此信息,有什么建议吗?

这些建议存储在
请求.query
对象中

您似乎还可以通过将
请求处理为字典来访问它们。query
属性:

request.query['city']
因此,
dict(request.query)
将创建一个包含所有查询参数的字典

正如@mklauber所指出的,这不适用于多字节字符。看起来最好的方法是:

my_dict = request.query.decode()
或:

使用
dict
而不是
对象。

如果需要所有对象:

from urllib.parse import parse_qs

dict = parse_qs(request.query_string)
如果您想要一个:

one = request.GET.get('one', '').strip()

你能试试这个吗

对于此示例:

在代码中:

param_value = request.query.param_name
从文件中

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''
因此,您可能更喜欢使用属性访问器(request.query.variable\u name)而不是request.query.get('variable\u name')


另一点是,您可以使用request.params.variable\u name,这对GET和POST方法都有效,而不是根据GET/POST来切换request.query.variable\u name或request.forms.variable\u name。

注意,根据文档,基于dict的访问无法正确解码和重新编码多字节字符。啊,是的,它看起来像是
my_dict=request.query.decode()
是正确的方法。或者您可以使用
request.query.one
@f p:它返回一个空字符串以及您的代码。唯一的区别是request.query.one始终是Unicode字符串。
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''