给定如下的URL,如何解析查询参数的值?例如,在本例中,我想要some_key的值。

/some_path?some_key=some_value'

我在我的环境中使用Django;请求对象上是否有可以帮助我的方法?

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


当前回答

urlparse模块提供了你需要的一切:

urlparse.parse_qs ()

其他回答

我很惊讶这个答案还没出现在这里。使用:

request.GET.get('variable_name')

这将从“get”字典中“获取”变量,如果它存在则返回“variable_name”值,如果不存在则返回None对象。

3.4 . for Python >

from urllib import parse
url = 'http://foo.appspot.com/abc?def=ghi'
query_def=parse.parse_qs(parse.urlparse(url).query)['def'][0]

没有必要做这些。只有

self.request.get('variable_name')

注意,我没有指定方法(GET、POST等)。这是一个很好的例子

你使用Django模板这一事实并不意味着Django也会处理这个处理器

没有使用Django,尝试使用Python 3.9。它也可以在处理程序中使用下面的代码片段来检索:

考虑URL为-

http://localhost:8081/api/v1/users?query_key=abcdef12345

和handler方法为:

@routes.get('/api/v1/users')
async def handler_users(request):
    query_key = request.url.query['query_key']
import urlparse
url = 'http://example.com/?q=abc&p=123'
par = urlparse.parse_qs(urlparse.urlparse(url).query)

print par['q'][0], par['p'][0]