[英]Flask-pymongo RuntimeError: Working outside of application context
我正在編寫一個程序,使用flask-pymongo基於id字段讀取mongodb文檔。 但是我出錯了,有人可以告訴我我要去哪里錯嗎?
碼:
from flask import Flask, make_response, jsonify
from flask_pymongo import PyMongo
from collections import OrderedDict
from bson import json_util
import json
app = Flask('__name__')
app.config['MONGO_DBNAME'] = 'db_name'
app.config['MONGO_URI'] = 'mongodb://192.168.55.24:27017/db_name'
mongo_connection = PyMongo(app)
@app.route('/')
def index(inp_id):
collection = mongo_connection.db.table_name
one_record = collection.find_one({'id': inp_id})
obj_str = json_util.dumps(one_record)
obj_dict = json.loads(obj_str, object_hook=OrderedDict)
return make_response(jsonify(obj_dict), 200)
if __name__ == '__main__':
index('5cd00a468b36db516b6d2f16') # I think this is where I'm going wrong
給我以下錯誤:
RuntimeError: Working outside of application context.
如果我將id值直接替換為inp_id,則會得到結果,但我正在嘗試編寫一個通用值。
Flask具有應用程序上下文,您可能需要使用app.app_context()
使其起作用。
在請求,CLI命令或其他活動期間,應用程序上下文會跟蹤應用程序級別的數據。 而不是將應用程序傳遞給每個函數,而是訪問current_app和g代理。
嘗試這個 :
def index(inp_id):
with app.app_context():
collection = mongo_connection.db.table_name
one_record = collection.find_one({'id': inp_id})
obj_str = json_util.dumps(one_record)
obj_dict = json.loads(obj_str, object_hook=OrderedDict)
return make_response(jsonify(obj_dict), 200)
有關更多信息,請閱讀Flask應用程序上下文
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.