如何在Django中使用持久性数据库连接?

时间:2018-12-04 17:50:14

标签: python mysql django database-connection

对于每个请求,即使在我的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的新手

0 个答案:

没有答案