更改django
与数据库(即MySQL)连接方式的最佳方法是什么?
例如,如果我需要django
通过ssh
隧道连接到数据库,该隧道的设置可能会动态更改,该怎么办? (我打算使用sshtunnel)
我了解我应该sub-class
django.db.backends.mysql.base.DatabaseWrapper
,并且可能super()
/修改get_new_connection(self, conn_params)
吗? (请参见下面的示例)
但是接下来,我将如何在设置中提交此自定义class
,因为似乎设置期望使用模块而不是类的路径?
行中的内容:
class myDatabaseWrapper(DatabaseWrapper):
"""Oversimplified example."""
def get_new_connection(self, conn_params):
with open('path/to/json.js', 'rt') as file:
my_conn_params = json.load(file)
conn_params.update(my_conn_params)
return super().get_new_connection(my_conn_params)