tornado* Web 框架中的 HTTPRequest 类有助于将 GET 和 POST 参数映射到列表。我理解为什么 - 如果多次使用给定的参数名称。但是对于一些 RequestHandlers 来说,这是一种痛苦。例如,如果我想传递一个 json 对象并在服务器上按原样解析它。
禁用映射到列表行为的最直接方法是什么,以便我可以将未更改的 json 发送到龙卷风/旋风服务器?
*Cyclone,实际上,以防这里存在实施差异。
tornado* Web 框架中的 HTTPRequest 类有助于将 GET 和 POST 参数映射到列表。我理解为什么 - 如果多次使用给定的参数名称。但是对于一些 RequestHandlers 来说,这是一种痛苦。例如,如果我想传递一个 json 对象并在服务器上按原样解析它。
禁用映射到列表行为的最直接方法是什么,以便我可以将未更改的 json 发送到龙卷风/旋风服务器?
*Cyclone,实际上,以防这里存在实施差异。
self.request.arguments
您应该使用访问器函数,而不是直接访问:
self.get_argument("ID", default=None, strip=False)
这将返回单个项目。
如果您想将参数转换为 JSON 对象,您可以很容易地做到这一点:
json.dumps({ k: self.get_argument(k) for k in self.request.arguments })
我会说“你不走运”。您可以重新编写有问题的课程(看起来这不会很有趣),但除此之外我看不到很多选择。
我只会使用字典理解。
{k:''.join(v) for k,v in self.request.arguments.iteritems()}