首页 文章

Python:处理pyMongo 's ObjectId with Tornado' s get_argument

提问于
浏览
0

我正在用python,tornadoweb和MongoDB构建一个REST api . 我正在寻找一种简单的方法来处理客户端 - 服务器文档交换,尽可能使用最低的操作和最简单的API . 我遇到了将MongoDB的ObjectId序列化和反序列化为JSON以向客户端发送数据或从客户端接收数据的问题 .

我知道有两种方法可以解决这个问题:

这些解决方案似乎都不可接受,因为:

> arguments: {'_id[$oid]': ['54f9c7ab834bac1b76846655'], ...}
> POST [...] (127.0.0.1): Missing argument _id

关于如何优雅地处理这个问题的任何想法?优雅地说,我的意思是我想以一种最类似的方式处理id,如果id是一个简单的字符串,我会做的 .

非常感谢你的帮助 . 我做了一些研究,我很惊讶我找不到这个问题的答案,因为MondoDB和龙卷风经常被一起使用 . 也许我错过了一个关键字来获得解决方案 .

1 回答

  • 0

    对象ID(可能是整个POST主体)应编码为JSON . 在表单编码的主体中没有标准的方法来表示这样的复杂对象 . jQuery使用非标准编码 obj[field]=value ,但这并不是普遍支持的,特别是Tornado不支持它 . 在使用带有Tornado的jQuery时,你应该使用JSON或"traditional"模式(虽然传统模式在这里没有帮助,因为它只适用于列表,而不适用于映射) .

相关问题