Trong ứng dụng Flask của tôi, tôi hy vọng sẽ sử dụng trực tiếp pymongo. Nhưng tôi không chắc chắn cách tốt nhất để tạo kết nối pymongo cho mỗi yêu cầu là gì và làm thế nào để lấy lại tài nguyên kết nối.cách tạo kết nối pymongo theo yêu cầu trong Flask
Tôi biết Kết nối trong pymongo là an toàn chỉ và có tích hợp sẵn. Tôi đoán tôi cần phải tạo một cá thể kết nối toàn cầu, và sử dụng before_request để đặt nó vào bình g.
Trong 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
Trong admin/views.py:
from flask import g
@admin.route('/')
def index():
# do something with g.db
Nó thực sự hoạt động. Vì vậy, câu hỏi là:
Đây có phải là cách tốt nhất để sử dụng Kết nối trong bình?
Tôi có cần xác nhận lại tài nguyên một cách rõ ràng trong teardown_request và cách thực hiện không?