在我的Flask應用程序中,我希望直接使用pymongo。但我不確定爲每個請求創建pymongo連接以及如何回收連接資源的最佳方式。如何在Flask中爲每個請求創建pymongo連接
我知道pymongo中的連接是線程安全的並具有內置池。我想我需要創建一個全局連接實例,並使用before_request將它放入燒瓶g。
在app.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
在管理/ views.py:
from flask import g
@admin.route('/')
def index():
# do something with g.db
它的實際工作。所以問題是:
這是在燒瓶中使用連接的最佳方式?
我是否需要明確回收teardown_request中的資源以及如何執行此操作?