给定如下的URL,如何解析查询参数的值?例如,在本例中,我想要some_key的值。
/some_path?some_key=some_value'
我在我的环境中使用Django;请求对象上是否有可以帮助我的方法?
我尝试使用self.request.get('some_key'),但它没有返回值some_value,因为我希望。
给定如下的URL,如何解析查询参数的值?例如,在本例中,我想要some_key的值。
/some_path?some_key=some_value'
我在我的环境中使用Django;请求对象上是否有可以帮助我的方法?
我尝试使用self.request.get('some_key'),但它没有返回值some_value,因为我希望。
当前回答
您引用的url是一个查询类型,我看到请求对象支持一个称为arguments的方法来获取查询参数。你可能还想尝试self.request.get('def')直接从对象中获取你的值。
其他回答
没有必要做这些。只有
self.request.get('variable_name')
注意,我没有指定方法(GET、POST等)。这是一个很好的例子
你使用Django模板这一事实并不意味着Django也会处理这个处理器
参数= dict([part.split('=')) for part in get_parsed_url [4] .split (' & '))
这一点很简单。变量参数将包含所有参数的字典。
在纯Python中:
def get_param_from_url(url, param_name):
return [i.split("=")[-1] for i in url.split("?", 1)[-1].split("&") if i.startswith(param_name + "=")][0]
这不是Django特有的,而是一般的Python。关于Django的具体答案,请看来自@jball037的这个
Python 2:
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'文档
没有使用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']