【问题标题】:Pass more than one parameter in URL在 URL 中传递多个参数
【发布时间】:2012-04-09 21:41:09
【问题描述】:

我尝试使用 python 通过 URL 传递多个参数,我是这样写的:

 self.response.out.write("""<html><br><body><center> <li ><a href="download.py?blob_key=%s & width=%s & height=%s" >%s</a></center></body></html>      
""" % (str(blob_key),str(w),str(h), str(name)))

但是我不能通过这个方法,我不知道确切的错误。 谢谢

【问题讨论】:

  • 除了空格,正如答案所指出的那样,我敢打赌你会得到一个你甚至没有提到的TypeError

标签: python url parameter-passing


【解决方案1】:

这里的问题是空格。 HTTP 协议不允许在请求字符串中使用它。

我会这样写:

'<a href="download.py?key={}&width={}&height={}">{}</a>'.format(key, w, h, name)

str.formatstr%something 的新首选替代品)。

【讨论】:

  • :对不起python页面中的这部分代码我会编辑问题
  • 如果你想让它在 python 2.6 中工作,那么将数字 0 到 3 粘贴在大括号中:key={0}&width={1} 等等。空卷发是 2.7 主义。
  • @Spacedman:我使用了 python2.5,我按照你说的尝试了:َ**self.response.out.write("""
  • {3}
  • """ % blob_key,w,h,name)َ**,但现在的问题是:** TypeError: write() 需要 2 个参数(给定 5 个)**跨度>
  • 是的,但是您使用了 'string % value,value' 而不是 'string.format(value,value,...)。您的大多数值参数都转到了“写入”函数。做:self.response.out.write("etc etc {0} etc etc {1} ertc etc {2} etc etc {3}etcetc".format(v1,v2,v3,v4))
猜你喜欢
  • 1970-01-01
  • 2013-11-21
  • 2012-06-12
  • 1970-01-01
  • 2021-09-12
  • 2016-02-20
  • 2018-08-29
  • 2015-06-13
  • 1970-01-01
相关资源
最近更新 更多