次の問題で困っています。
Flask、flask-pymongo 拡張機能、mongodb バージョン v2.2.0-rc0、pdffile バージョン 4.5 を使用しています。
これは私のルートです:
@app.route("/check/<id>")
def check(id):
doc=conn.db.msg.find_one({'_id':id})
return render_template('base.html',name=doc)
id は msg コレクション内のドキュメントからの有効な _id ですが、常に None を返します。
私が試してみました:
- ObjectId(id) を渡しますが、errortype を返します: ObjectId は呼び出し可能ではありません
- id を str(id) として渡すと None が返されます
何かご意見は?
更新: これは、完全な URL がどのように見えるかです:
http://127.0.0.1:8000/check/5030b628895b800de1a9a792
更新 2:
ruby の (answer) で同様の質問を見つけました。どうすればそれを Python に変換できるかわかりません。どのような種類のインポート/モジュールが必要ですか?
UPDATE3:私は試しました:
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)
しかし、私はTypeError: 'module' object is not callableを取得します(id でも動作しません)
1500に到達したら、フラストレーションタグを提案します:-S
更新 4:
ついに私はそれを起動して実行しました!
ここに私の解決策があります:
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)