我目前正在开发一个支持MongoDB的restfulapi和flask。。。但是,我用find_one()设置了一个区域搜索查询,但是,当我尝试使用find()将它变成一个包含多个结果的较大查询时,我在postman上得到以下错误:
UnboundLocalError: local variable 'output' referenced before assignment
这是有效的代码,但是它只从查询中返回一个文档:
^{pr2}$一旦我试图更改以获得所有结果,使它find()就不起作用了
@app.route('/active_jobs/<zone>', methods = ['GET'])
def get_one_zone(zone):
ajobs = mongo.db.ajobs
q = ajobs.find({'zone' : zone})
output = {}
output = ({
'zone': q['zone'], 'jobdate' : q['jobdate'],
'jobtime' : q['jobtime'],'client': q['client'],
})
return jsonify({output})
Im是编程世界的新手,所以如果你能用一些简单的例子,那将是非常感谢的。在
出于安全原因,不返回纯列表,建议返回带有列表的dict,如下所示:
jsonify会处理好的。在
顺便说一下,我已经为构建restfulapi构建了一个轻量级框架,使用的默认数据库引擎是mongodb,所以我想您可能会发现它很有用。代码如下:https://github.com/sebastiandev/peach
有一些循序渐进的例子。如果你还有任何疑问,请告诉我,我会尽力帮助你的。在
这可能是因为mongo中的find_One将只返回1个文档作为字典,而find将返回多个文档作为字典列表。jsonify不适用于如下所示的列表:How do I `jsonify` a list in Flask?。在
你可以用json.dumps文件相反,正如答案所示。在
相关问题 更多 >
编程相关推荐