给定如下 URL,如何解析查询参数的值?例如,在这种情况下,我想要 的值some_key。
some_key
/some_path?some_key=some_value'
我在我的环境中使用 Django;对象上有什么方法request可以帮助我吗?
request
我尝试使用self.request.get('some_key'),但它没有some_value像我希望的那样返回值。
self.request.get('some_key')
some_value
这不是特定于 Django 的,而是针对一般的 Python 的。对于 Django特定的答案,请参阅这个
我很震惊这个解决方案还没有在这里。利用:
request.GET.get('variable_name')
这将从“GET”字典中“获取”变量,如果存在则返回“variable_name”值,如果不存在则返回 None 对象。
python2:
import urlparse url = 'https://www.example.com/some_path?some_key=some_value' parsed = urlparse.urlparse(url) captured_value = urlparse.parse_qs(parsed.query)['some_key'][0] print captured_value
python 3:
from urllib.parse import urlparse from urllib.parse import parse_qs url = 'https://www.example.com/some_path?some_key=some_value' parsed_url = urlparse(url) captured_value = parse_qs(parsed_url.query)['some_key'][0] print(captured_value)
parse_qs返回一个列表。获取列表的[0]第一项,因此每个脚本的输出为some_value
parse_qs
[0]
这是 Python 3 的“parse_qs”文档