对于每个请求,django都在创建一个新的db连接,即使在django db配置中设置了conn\u max\u age变量
我的配置-
python3.5/django2.05/mysql-5.6版本
这是我的数据库配置-
{'default': {
'CONN_MAX_AGE': 500,
'ENGINE': 'django.db.backends.mysql',
'HOST': 'localhost',
'NAME': DB_NAME,
'OPTIONS': {},
'PASSWORD': 'root',
'PORT': '3306',
'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None,
'NAME': None},
'TIME_ZONE': None,
'USER': 'root'}}
根据doc:django文档,在conn\u max\u age过期之前,它不应该创建新连接。
我通过点击一个自定义视图的get请求进行检查,并通过添加以下语句来检查连接对象-
from django.db import connections
print (connections.all())
日志显示一个新的连接对象,如下所示-
[INFO 2018-12-04 23:00:08,472 basehttp] "GET /health_check/ HTTP/1.1" 200 96
[<django.db.backends.mysql.base.DatabaseWrapper object at 0x7f2c5fb1a0b8>]
[INFO 2018-12-04 23:00:09,017 basehttp] "GET /health_check/ HTTP/1.1" 200 96
[<django.db.backends.mysql.base.DatabaseWrapper object at 0x7f2c5fa88d30>]
另一个观察是-
通过登录内部-
local/lib/python3.5/site-packages/django/db/backends/mysql/base.py get\u new\u connection()是为每个请求调用的,我认为这不应该发生。
如果这种按对象名记录/调试的解释是错误的,那么建议如何确保不会在每个请求上创建db连接。
ps,我是刚到django的
暂无答案!
目前还没有任何答案,快来回答吧!