【发布时间】:2017-07-29 22:56:35
【问题描述】:
这段从大得多的代码中缩减的简单代码在 pymongo 'find' 调用中会产生错误:
from flask import Flask, request, jsonify
from flask_pymongo import PyMongo
from os import environ
CLIENT_PATH = "/api/v1.0"
app = Flask(__name__)
app.config['MONGO_URI'] = environ.get('MONGODB_URI', "mongodb://localhost:27017/test")
mongo = PyMongo(app)
@app.route(CLIENT_PATH, methods=['GET'])
def getClients():
data = []
cursor = mongo.db.client.find({}, {"_id": 0})
for item in cursor:
client_detail = {}
client_detail['url'] = CLIENT_PATH + "/" + str(item.get('id'))
client_detail['clientTitle'] = str(item.get('firstName')) + " " + str(item.get("familyName"))
data.append(client_detail)
return jsonify({"status": "success", "payload": data})
if __name__ == "__main__":
app.run(debug=True)
如果我使用 python 2.7 运行它并在“http://localhost:5000/api/v1.0”上从浏览器进行调用,我会收到以下错误消息:
File "/Users/markschulz/Projects/client/flask-client/app.py", line 16, in getClients
cursor = mongo.db.client.find({}, {"_id": 0})
File "/Users/markschulz/Projects/client/venv/lib/python2.7/site-packages/pymongo/database.py", line 1116, in __call__
self.__name, self.__client.__class__.__name__))
TypeError: 'Database' object is not callable. If you meant to call the 'find' method on a 'MongoClient' object it is failing because no such method exists.
使用的软件版本有:pymongo==3.4.0 Flask==0.12 Flask-PyMongo==0.4.1
这里有什么?
【问题讨论】:
标签: python-2.7 flask pymongo