【发布时间】:2013-02-15 16:42:21
【问题描述】:
所以我构建了一个简单的名为“echo”的cherrypy 函数来尝试找出cherrypy 发送到我的python 函数的内容。示例:
http://djotjog.com/cp/echo/692-gg_org_id-2013-02-05.json/
RETURNS:
{'kw': {}, 'args': (), 'param_1': '692-gg_org_id-2013-02-05.json', 'param_2': None}
现在,这可能看起来很奇怪,但我想传递一本字典。这是一个 html 的噩梦吗?示例:
这个函数需要两个参数。参数是可选的:
def some_function(filename, params = {'db':'bh-localhost','h':'sparse','branching':7})
通过cherrypy发送...
http://djotjog.com/cp/echo/692-gg_org_id-2013-02-05.json/{h:'branchy','branching':7,'db':'bh-localhost'}
RETURNS
{'kw': {}, 'args': (), 'param_1': '692-gg_org_id-2013-02-05.json', 'param_2': "{h:'branchy','branching':7,'db':'bh-localhost'}"}
但是当我通过实际函数而不是回声时,它告诉我:
404 未找到。没有任何内容与给定的 URI 匹配。
这是因为字典现在是字符串而不是字典吗?我可以做些什么来传递字典?还是只保留个别论点?
【问题讨论】:
-
我想我在这里追求的灵活性是一种传递或省略一组可选参数中的任何一个的方法,而无需对这些参数出现在参数列表中的顺序感到挑剔。最好的技巧是什么?
-
为什么你想要像
http://djotjog.com/cp/echo/692-gg_org_id-2013-02-05.json/{h:'branchy','branching':7,'db':'bh-localhost'}这样的网址而不是像http://djotjog.com/cp/echo/692-gg_org_id-2013-02-05.json/?h=branchy&branching=7&db=bh-localhost这样的标准格式? -
一个json或者字典格式可以省略keys,可以任意顺序发送,所以不太容易出错。否则,将所有部分发送到函数也可以以这种格式工作,但我必须在每次调用时更加注意可选参数和必需参数。