对于每个请求,即使在我的Django数据库配置中设置了CONN_MAX_AGE变量后,django仍在创建新的数据库连接
我的配置-
python3.5 / Django2.05 / mysql-5.6
这是我的数据库配置-
#include <stdio.h>
#define NUM_WORDS 3
#define MAX_WORD_SIZE 64
void printStrings(char words[])
{
//But now 'words' looks like this: "one"
for (int i = 0; i < NUM_WORDS; ++i)
printf("%s", words[i]);
}
void main()
{
char words[NUM_WORDS][MAX_WORD_SIZE] = { "one", "two", "three" };
//At this point the array 'words' looks like this:
//{ "one", "two", "three" }
printStrings(words);
}
根据文档Django Documentation,在CONN_MAX_AGE到期之前,它不应创建新的连接。
我通过点击对自定义视图的get请求进行检查,并通过添加此语句来检查连接对象-
{'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'}}
日志显示一个新的连接对象,如下所示-
from django.db import connections
print (connections.all())
另一个观察结果是-
通过登录-
本地/lib/python3.5/site-packages/django/db/backends/mysql/base.py
每个请求都被调用get_new_connection(),根据我的看法,这应该不会发生。
如果按对象名称对日志记录/调试的解释不正确,则然后建议如何确保不会在每个请求中都创建数据库连接。
PS,我是django的新手