django 链接多个数据库 并使用原生sql

本文介绍了在Django中如何配置和使用多个数据库,包括默认数据库和指定数据库的连接方式。示例代码展示了如何通过`connections`访问非默认数据库执行SQL查询,如显示所有表、获取数据行数以及查询表字段信息。
摘要由CSDN通过智能技术生成
settings文件如下:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        "HOST": '127.0.0.1',
        "PORT": 3306,
        "USER": 'root',
        'PASSWORD': "123456",
        'NAME': 'analysis',
    },
    'analysis1': {
        'ENGINE': 'django.db.backends.mysql',
        "HOST": '127.0.0.1',
        "PORT": 3306,
        "USER": 'root',
        'PASSWORD': "123456",
        'NAME': 'analysis1',
    }
}
查找Django的文档:

使用默认 default 数据库,

from django.db import connection
 
def my_custom_sql(self):
    with connection.cursor() as cursor:
        cursor.execute("UPDATE bar SET foo = 1 WHERE baz = %s", [self.baz])
        cursor.execute("SELECT foo FROM bar WHERE baz = %s", [self.baz])
        row = cursor.fetchone()
 
    return row

如果有多个数据库,会默认使用 default,当你想使用指定的数据库连接时,引入的对象就变成了connections

from django.db import connections
def qwq():

    with connections['analysis1'].cursor() as cursor:

        # 查看所有表
        cursor.execute("show tables")
        # cursor.execute("SELECT foo FROM bar WHERE baz = %s", [self.baz])
        row = cursor.fetchall()
          # 查询有多少数据   默认为第一张表
        cursor.execute("select count(1) as c from %s" % t_name)  # 查询有多少条数据
        count_t = cursor.fetchone()
        print(count_t)
                # 查询表字段名及注释 默认为第一张表
        sql_t_name = "select column_name,column_comment from INFORMATION_SCHEMA.Columns where table_name='{}'".format(
            t_name)
        cursor.execute(sql_t_name)  # 查询有多少条数据
        tables_data = cursor.fetchall()

————————————————

原文链接:https://blog.csdn.net/qq_37049050/article/details/85131514

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值