小编典典

从 URL 检索参数

all

给定如下 URL,如何解析查询参数的值?例如,在这种情况下,我想要 的值some_key

/some_path?some_key=some_value'

我在我的环境中使用 Django;对象上有什么方法request可以帮助我吗?

我尝试使用self.request.get('some_key'),但它没有some_value像我希望的那样返回值。


阅读 56

收藏
2022-06-25

共1个答案

小编典典

这不是特定于 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

这是 Python 3
的“parse_qs”文档

2022-06-25