我目前正在研究一个MongoDB支持的RESTFUL API与烧瓶...但是,Ive使用find_one()设置了一个区域搜索查询,但是一旦我尝试使用find()将其设置为具有多个结果的较大查询,我就在postman上收到以下错误:
UnboundLocalError: local variable 'output' referenced before assignment
这是有效的代码,但它只从查询中返回一个文档:
@app.route('/active_jobs/<zone>', methods = ['GET'])
def get_one_zone(zone):
ajobs = mongo.db.ajobs
q = ajobs.find_One({'zone' : zone})
output = {}
output = ({
'zone': q['zone'], 'jobdate' : q['jobdate'],
'jobtime' : q['jobtime'],'client': q['client'],
})
return jsonify({output})
一旦我尝试更改以获得所有结果,使其查找()它不起作用
@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})
ps.我是编程界的新手,所以如果你能使用简单的例子,我会非常感激。
出于安全原因,建议返回带有列表的字典,而不是返回普通列表,如下所示:
{
'data': [1,2,3,4]
}
jsonify将很好地处理这个问题。
顺便说一句,我已经为构建restful apis构建了一个轻量级框架,并且使用的默认数据库引擎是mongoDB,所以我想您可能会发现它很有帮助。代码如下:https://github.com/sebastiandev/peach
有一些循序渐进的例子。如果你有任何其他疑问,请告诉我,我会尽力帮助你。
这可能是因为mongo中的“find_One”将仅返回一个文档作为字典,而find将返回多个文档作为一个字典列表。jsonify在列表上不起作用,如下所示:如何在Flask中“jsonify”列表?。
您可以使用json.dumps来代替,正如那里的答案所暗示的那样。
我使用querydsl来构造动态搜索查询(并使用spring data mongodb API来执行它)。是否有一种方法可以构造支持$text(全文)搜索的querydsl查询?
Cloudera留档,显示了一种“使用Avro模式文件创建Avro支持的Hive表”的简单方法。这很好。我想对Parque支持的Hive表做同样的事情,但是在这种情况下,相关的留档列出了每种列类型,而不是从模式中读取。是否可以像Avro数据一样从模式中读取Parque列?
本文向大家介绍Python中使用Flask、MongoDB搭建简易图片服务器,包括了Python中使用Flask、MongoDB搭建简易图片服务器的使用技巧和注意事项,需要的朋友参考一下 1、前期准备 通过 pip 或 easy_install 安装了 pymongo 之后, 就能通过 Python 调教 mongodb 了. 接着安装个 flask 用来当 web 服务器. 当然 mongo 也
我还看到,我不必使用导入,只需使用整个路径调用类。这似乎是一个很多的工作,但可能的解决方案。我只想知道有没有更快更容易的解决办法。
主要内容:Python类的实例化,Python类对象的使用通过前面章节的学习,我们已经学会如何定义一个类,但要想使用它,必须创建该类的对象。 创建类对象的过程,又称为类的实例化。 Python类的实例化 对已定义好的类进行实例化,其语法格式如下: 类名(参数) 定义类时,如果没有手动添加 __init__() 构造方法,又或者添加的 __init__() 中仅有一个 self 参数,则创建类对象时的参数可以省略不写。 例如,如下代码创建了名为 CLang
我正在使用Spring数据卡桑德拉,与卡桑德拉数据库连接,配置文件扩展了抽象卡桑德拉配置和覆盖功能 - 我的目标是用@Table注释从com.example包中提到的实体在Cassandra中自动创建表。比如说- 对于这个实体,使用给定的配置,应该在spring初始化期间创建一个表,但是它没有这样做。不过也没有例外,它并没有在Cassandra中创建任何东西。任何帮助都将不胜感激。谢了。