给定如下的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,因为我希望。
当前回答
在原始python中解析它:
path = '/some_path?k1=v1&k2=v2&k3=v3'
_, query_string = path.split('?')
params = dict(param.split('=') for param in query_string.split('&'))
print(params)
输出:
{'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
其他回答
在纯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]
urlparse模块提供了你需要的一切:
urlparse.parse_qs ()
def getParams(url):
params = url.split("?")[1]
params = params.split('=')
pairs = zip(params[0::2], params[1::2])
answer = dict((k,v) for k,v in pairs)
希望这能有所帮助
我很惊讶这个答案还没出现在这里。使用:
request.GET.get('variable_name')
这将从“get”字典中“获取”变量,如果它存在则返回“variable_name”值,如果不存在则返回None对象。
import cgitb
cgitb.enable()
import cgi
print "Content-Type: text/plain;charset=utf-8"
print
form = cgi.FieldStorage()
i = int(form.getvalue('a'))+int(form.getvalue('b'))
print i