将mongo中的数据转换成json格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 这个是将mongo Document对象转换成json的编码器
class MongoEncoder(JSONEncoder):
def default(self, o):

# 转换日期
if isinstance(o, (datetime, date)):
pass

# 转换Document
if isinstance(o, BaseDocument):
return o.to_mongo()

# 转换id
if isinstance(o, ObjectId):
return str(o)

return JSONEncoder.default(self, o)



# 在蓝图上添加mongo解码器. jsonify会自动将Document对象转成json
bp = Blueprint("article", __name__, url_prefix="/article")
bp.json_encoder = MongoEncoder


@bp.route("/<id>/", methods=("GET",))
def article(id: str):
instance = Article.objects.get_or_404(id=id)

return jsonify({
"code": 0,
"msg": "success",
"data": instance
})