使用python中的变量作为字符串查询来传递url中的参数

时间:2015-04-15 16:19:04

标签: python http url

我想使用查询字符串通过URL传递值。例如:

http://127.0.0.1:5000/data?key=xxxx&secret=xxxx

在Python中,如何将变量添加到URL?例如:

key = "xxxx"
secret = "xxxx"
url = "http://127.0.0.1:5000/data?key=[WHAT_GOES_HERE]&secret=[WHAT_GOES_HERE]"

4 个答案:

答案 0 :(得分:6)

最安全的方法是执行以下操作:

import urllib

args = {"key": "xxxx", "secret": "yyyy"}
url = "http://127.0.0.1:5000/data?{}".format(urllib.urlencode(args))

您需要确保您的值已经过网址编码。

可安全发送非编码的唯一字符是[0-9a-zA-Z]和$ -_。+!*'()

其他一切都需要编码。

有关其他信息,请参阅RFC1738

的第2页

答案 1 :(得分:2)

你是说这个?

key = "xxxx"
secret = "xxxx"
url = "http://127.0.0.1:5000/data?key=%s&secret=%s" % (key, secret)

答案 2 :(得分:2)

连接你的字符串和变量:

key = "xxxx"
secret = "xxxx"
url = "http://127.0.0.1:5000/data?key="+key+"&secret="+secret

答案 3 :(得分:0)

我认为使用formatter更好(当你有很多参数时,这比%s更清晰):

>>> key = "xxxx"
>>> secret = "xxxx"
>>> url = "http://127.0.0.1:5000/data?key={key}&secret={secret}".format(key=key, secret=secret)
>>> print(url)
http://127.0.0.1:5000/data?key=xxxx&secret=xxxx