mysql 在django中是否需要关闭数据库连接?

qyzbxkaa  于 2023-05-21  发布在  Mysql
关注(0)|答案(1)|浏览(393)

在django中是否需要关闭数据库连接。还是django会自动为我们做

ruoxqz4g

ruoxqz4g1#

不需要手动关闭连接,因为Django会自动关闭连接。Django 3.0文档指出:
Django在第一次进行数据库查询时打开一个到数据库的连接。它保持此连接打开并在后续请求中重用它。Django会在连接超过CONN_MAX_AGE定义的最大年龄或不再可用时关闭连接。
详细地说,Django会在需要连接而没有连接的时候自动打开一个数据库连接--要么是因为这是第一个连接,要么是因为前一个连接被关闭了。
在每个请求开始时,Django会关闭连接,如果它已经达到了最大年龄。如果你的数据库在一段时间后终止了空闲连接,你应该将CONN_MAX_AGE设置为一个较低的值,这样Django就不会尝试使用一个已经被数据库服务器终止的连接。(此问题可能只影响流量非常低的站点。)
在每个请求结束时,Django会关闭连接,如果它已经达到了最大年龄,或者如果它处于不可恢复的错误状态。如果在处理请求时发生了任何数据库错误,Django会检查连接是否仍然有效,如果不有效就关闭它。因此,数据库错误最多影响一个请求;如果连接变得不可用,则下一个请求获得新的连接。

相关问题