如何在python瓶子应用程序中检索GET vars
我正在尝试使用Python瓶子应用程序制作一个简单的RESTAPI。 我在从请求全局对象检索GET变量时遇到了一个问题。如何在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
如何从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''