简体   繁体   English

将Flask与PyMongo结合使用

[英]Using Flask with PyMongo

I have Flask application, which looks like this: 我有Flask应用程序,看起来像这样:

from flask import Flask
app = Flask(__name__)
from pymongo import MongoClient

def get_db():
    c = MongoClient()
    return c.mydb

@app.route("/")
def hello():
    db = get_db()
    db.foo.find_one(...)
    ...

if __name__ == "__main__":
    app.run()

Seems it works fine. 似乎工作正常。 But I'm not sure about one thing. 但是我不确定一件事。 I create a MongoClient instance (and connection to db) in every view call. 我在每个视图调用中创建一个MongoClient实例(以及与db的连接)。 But should I close connection? 但是我应该关闭连接吗?

Maybe I should close connection after each view call, like this: 也许我应该在每次视图调用后关闭连接,如下所示:

@app.before_request
def before_request():
    g.db = get_db()

@app.teardown_request
def teardown_request(exception):
    g.db.close()

How do you handle this stuff? 您如何处理这些东西?

MongoClient具有内置的连接池支持,默认大小为10。因此,您应该创建一个MongoClient实例,该实例保持打开状态并由所有视图调用共享。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM