私のFlaskアプリケーションでは、pymongoを直接使用したいと考えています。しかし、私は、それぞれの要求に対してpymongo接続を作成する最良の方法と、接続リソースを再利用する方法がわからない。Flaskで要求ごとにpymongo接続を作成する方法
私が知っているpymongoの接続はスレッドセーフで、組み込みのプーリングがあります。グローバルなConnectionインスタンスを作成し、before_requestを使用してフラスコに入れる必要があると思います。
app.pyで:それは実際に動作
from flask import g
@admin.route('/')
def index():
# do something with g.db
:管理者/ views.pyで
from pymongo import Connection
from admin.views import admin
connection = Connection()
db = connection['test']
@app.before_request
def before_request():
g.db = db
@app.teardown_request
def teardown_request(exception):
if hasattr(g, 'db'):
# FIX
pass
。したがって、質問は次のとおりです:
これは、フラスコでConnectionを使用する最善の方法ですか?
teardown_requestでリソースを明示的に再利用する必要がありますか?