我想回复我的帖子,但我得到了
TypeError:'Cursor'对象不可调用.
我怎么能纠正这个?这是我的代码:
from flask import Flask
from flask.ext.pymongo import PyMongo
app = Flask(__name__)
mongo = PyMongo(app)
from pymongo import Connection
connection = Connection()
db = connection.test_database
collection = db.test_collection
@app.route('/')
def home_page():
post = {"author":"mike","text":"jiii"}
posts = db.posts
posts.insert(post)
return posts.find()
if __name__=='__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
Joh*_*yHK 12
find()返回一个Cursor对象,您必须迭代该对象才能访问查询返回的文档.如:
for post in posts.find():
# do something with post
Run Code Online (Sandbox Code Playgroud)
当您从Flask处理程序返回某些内容时,它必须是以下类型之一:
flask.Response对象(或werkzeug.wrappers.Response对象).使用Flask render_template将返回一个响应对象.(content, status_code, headers)当您返回PyMongo Cursor对象时,Flask发现它不是flask.Response(实际上flask.Flask.response_class)的实例而不是元组,所以它假定它必须是WSGI对象并尝试调用它(因此错误).
最好的解决方案是使用flask.jsonfiy返回JSON响应或创建模板来呈现帖子并用于render_template返回相应的响应.
| 归档时间: |
|
| 查看次数: |
8332 次 |
| 最近记录: |