В моем приложении Flask я надеюсь использовать pymongo напрямую. Но я не уверен, как лучше всего создать соединение pymongo для каждого запроса и как восстановить ресурс соединения.
Я знаю, что Connection в pymongo является потокобезопасным -и имеет встроенный -пул. Думаю, мне нужно создать глобальный экземпляр Connection и использовать перед запросом _, чтобы поместить его в колбу 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
В admin/views.py:
from flask import g
@admin.route('/')
def index():
# do something with g.db
Это действительно работает. Итак, вопросы:
Это лучший способ использовать Connection in flask?
Нужно ли явно возвращать ресурсы в запросе на разборку _и как это сделать?