django 调用用户自已的数据库怎么实现?

目的,仅把 当前 的Web后端当作 入口,
进入主页后, 要根据不同用户, 调用不同的数据库,数据库密码由用户自已输入,不做 保存。

构想:

第一步:  用户进入后,从当前Web数据库表中,获取到用户个人 数据库 的 ip地址  和 账户名 (入口后端 只保存这两个信息)

这是 django    set.py 里的数据库设置
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'pro_test',
        'HOST':'******',
        'PORT':'3310',
        'USER':'root1',
        'PASSWORD':'***************'
    },
    'client_data': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database1',
        'HOST':'11.15.216.17',
        'PORT':'3310',
        'USER':'root1',
        'PASSWORD':''
    },
}

第二步,现在怎么调用 用户的个人数据 
进入主页之后,就不再调用当前数据库, 全部调用 用户的个人数据库,

set.py 这里怎么写?肯定不能写死,是在set.py里改,还是在 view 中 处理
DATABASES = {
    },
}

我现在这样做 --------------------------------------------------------------------------
def get(self,request):
        from pro_test.settings import DATABASES # 从setting.py  中导入数据库设置
        from django.db import connection # 导入connection,进行原生 sql操作
        #获取用户传过来的数据库密码
        db_password = request.query_params.get(db_password)
        # 把密码写入设置,  (client_data 是我设置的一个数据库)
        DATABASES['client_data']['PASSWORD']=db_password
    
        sql_str = "select * from table1"
        # 问题在这,默认是连接到 ‘default’ 的数据库,
        **# 我现怎么指定 连接   'client_data' 数据库**
        cursor = connection.cursor()  # 用建立好的connection对象创建cursor游标对象
        cursor.execute(sql_str)          # 执行自定义SQL语句
        dataInfo = cursor.fetchall()    # 取出执行返回的记录,返回的tuple类型数据
        return


建议看一下官方文档

django 连接多数据库或django app使用多数据库的例子还是很多的,可以参考下面例子
app链接多数据库(数据库结构不同)
https://blog.csdn.net/qq_23182345/article/details/120425435
https://www.cnblogs.com/daysn/p/10701898.html
django使用多数据库(数据库结构相同)
https://zhuanlan.zhihu.com/p/425128260

有帮助请点击右上角的采纳,谢谢

  1. 你额服务是部署在那里,是云服务器还是在用户本地?
    云服务器:外网访问不了内网基本不能实现,除非内网穿透
    用户本地:数据库配置直接填写用户本地的数据库信息
  2. 我想动态配置用户的数据库信息,填写什么就连接什么?
    那你就自己通过代码进行读取用户填写的数据进行数据库连接配置
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632