背景
在 Django 项目中 需要用到两个数据库,一个是Django默认使用的数据库,另一个则是已经存在的mysql数据库。
连接数据库方式
在 settings.py 中 增加一个数据库的连接方式:
其中 maccms 为自定义名称,为了区分数据库。Django默认orm查询使用的default,而且default即使不用 也不能删除,若不使用的话可以设置为空: ‘default’:{}
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),},'maccms': {'ENGINE': 'django.db.backends.mysql','NAME': 'app_ouketv_xyz','USER': 'app_ouketv_xyz','PASSWORD': 't3DdzKikX7WKbN6e','HOST': '103.152.132.108','PORT': '3306','OPTIONS': {'isolation_level': None}}}
多数据库时指定数据库使用
Author.objects.using('default').all()Author.objects.using('other').all()my_object.delete(using='legacy_users')
使用sql语句对mysql进行查询
创建了一个共用方法,使用时直接实例化该函数并传入sql语句即可
def exc_sql(sql):"""执行sql:param sql::return:"""with connections['maccms'].cursor() as cursor:cursor.execute(sql)result = cursor.fetchall()return result
