满口金牙 2022-05-05 23:41 采纳率: 91.5%
浏览 61
已结题

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


  • 写回答

4条回答 默认 最新

  • ~白+黑 Python领域新星创作者 2022-05-06 10:29
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月15日
  • 已采纳回答 5月7日
  • 修改了问题 5月6日
  • 修改了问题 5月6日
  • 展开全部

悬赏问题

  • ¥15 slam rangenet++配置
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊