【问题标题】:CherryPy only receiving 1st query string parameterCherryPy 仅接收第一个查询字符串参数
【发布时间】:2015-08-13 14:02:54
【问题描述】:

我刚刚开始了我在 Python 中的 CherryPy 模块领域的旅程。使用 RESTful api 设置服务器是多么容易,这真是太棒了,但是我遇到了一个问题。我的代码只承认查询字符串中的第一个参数。

我想发出这样的 GET 请求: curl -X GET 127.0.0.1:8080/api/sum/?a=2&b=3

我的Python代码如下:

import cherrypy

class getSum:
    exposed = True
    def GET(self, **params):
        a = float(params['a'])
        b = float(params['b'])
        return a+b

if __name__ == '__main__':
    cherrypy.tree.mount(getSum(), '/api/sum/', {'/': {'request.dispatch': cherrypy.dispatch.MethodDispatcher()}})
    cherrypy.engine.start()
    cherrypy.engine.block()

在摆弄代码一段时间后,我得出以下诊断结果: 当查询字符串被读入params 时,而不是在到达“&”时在字典中开始一个新条目,而是停止。

有人对如何将多个参数作为单个查询字符串读取有任何建议吗?

谢谢,肖恩。

【问题讨论】:

    标签: python get cherrypy


    【解决方案1】:

    我的问题中发布的 Python 脚本实际上是我想做的工作的实现。问题在于我提出的 curl 请求。

    我的 curl 请求中的“&”字符截断了我的 bash 命令,导致:curl -X GET 127.0.0.1:8080/api/sum/?a=2

    解决方法是将我的网址用引号括起来,如下所示:curl -X GET "127.0.0.1:8080/api/sum/?a=2&b=3"

    执行此命令时,5.0 按预期返回到终端。

    以下帖子包含有关在 curl 请求中使用 & 符号的有用讨论:How to include an '&' character in a bash curl statement

    【讨论】:

      猜你喜欢
      • 2015-12-22
      • 2011-07-17
      • 2018-10-26
      • 2021-09-01
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多