在Flask-SQLAlchemy中关闭数据库连接可以通过以下步骤实现:
以下是一个示例代码:
from flask import Flask, g
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'your_database_uri'
db = SQLAlchemy(app)
@app.before_request
def before_request():
g.db = db.get_engine().connect()
@app.teardown_request
def teardown_request(exception=None):
db = getattr(g, 'db', None)
if db is not None:
db.close()
# 其他路由和视图函数
if __name__ == '__main__':
app.run()
在上述代码中,before_request
装饰器用于在每个请求开始时创建数据库连接对象,并将其保存在g
对象中。teardown_request
装饰器用于在请求结束时关闭数据库连接对象。
这样做的好处是,每个请求都会有一个独立的数据库连接,可以避免连接泄露和资源浪费。同时,通过在请求结束时关闭连接,可以释放数据库资源。
请注意,上述代码中的your_database_uri
需要替换为实际的数据库连接URI。
推荐的腾讯云相关产品:腾讯云数据库 TencentDB,产品介绍链接地址:https://cloud.tencent.com/product/cdb
领取专属 10元无门槛券
手把手带您无忧上云