如何在django中使用persistence db连接?

px9o7tmv  于 2021-06-15  发布在  Mysql
关注(0)|答案(0)|浏览(190)

对于每个请求,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的

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题