Alt*_*ons 15 python mongodb pymongo flask
我对以下问题感到困惑.
我正在使用Flask,flask-pymongo扩展,mongodb版本v2.2.0-rc0,pdfile版本4.5
这是我的路线:
@app.route("/check/<id>")
def check(id):
doc=conn.db.msg.find_one({'_id':id})
return render_template('base.html',name=doc)
Run Code Online (Sandbox Code Playgroud)
id是msg集合中文档的有效_id,但总是返回None.
我试过了:
有什么想法吗?
更新:这个完整的URL如何:
http://127.0.0.1:8000/check/5030b628895b800de1a9a792
Run Code Online (Sandbox Code Playgroud)
UPDATE2:
我发现了类似的问题(回答)红宝石.不知道我怎么能把它翻译成python,我需要什么样的导入/模块?
更新3:我试过:
import bson
@app.route("/check/<id>")
def check(id):
id2="'"+id+"'"
doc=conn.db.msg.find_one({'_id':bson.objectid(id2) })
return render_template('base.html',name=doc)
Run Code Online (Sandbox Code Playgroud)
但是我得到TypeError:'module'对象不可调用(它也不能用于id)
当我达到1500时,我会建议一个沮丧的标签:-S
UPDATE4:
最后我把它拿起来跑了!
这是我的解决方案:
import bson
@app.route("/check/<id>")
def check(id):
doc=conn.db.msg.find_one({'_id':bson.ObjectId(oid=str(id))})
return render_template('base.html',name=doc)
Run Code Online (Sandbox Code Playgroud)
aez*_*ell 31
您可能还想尝试使用ObjectId
该bson.objectid
模块,如下所示:
from bson.objectid import ObjectId
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您不需要提供oid
kwarg.你会做这样的事情:
db_conn.msg.find_one({'_id': ObjectId(my_oid)})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9538 次 |
最近记录: |