背景
在 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