Python:使用 Tornado 的 get_argument 处理 pyMongo 的 ObjectId

Python: Handle pyMongo's ObjectId with Tornado's get_argument

我正在使用 python、tornadoweb 和 MongoDB 构建 REST api。 我正在寻找一种尽可能以最少的操作和最简单的 API 来处理客户端-服务器文档交换的简单方法。我在将 MongoDB 的 ObjectId 序列化和反序列化为 JSON 到 send/receive 数据进出客户端时遇到问题。

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

None 这些解决方案似乎是可以接受的,因为:

知道如何优雅地处理这个问题吗?优雅地我的意思是我想以一种与如果 id 是一个简单字符串时我会做的最相似的方式来处理 id。

非常感谢您的帮助。我做了一些研究,我很惊讶我找不到这个问题的答案,因为 MondoDB 和 tornado 经常一起使用。也许我缺少一个关键字来获得解决方案。

对象 ID(可能还有整个 POST 正文)应编码为 JSON。没有标准的方法可以在表单编码的主体中表示像这样的复杂对象。 jQuery 使用非标准编码 obj[field]=value,但这并未得到普遍支持,尤其是 Tornado 不支持它。在 Tornado 中使用 jQuery 时,您应该使用 JSON 或 "traditional" 模式(尽管传统模式在这里无济于事,因为它仅适用于列表,不适用于映射)。