django操作多数据库
django操作多数据库
1、 在settings.py文件中配置多数据库
# database
# https://docs.djangoproject.com/en/2.1/ref/settings/#databases
databases = {
'default': {
'engine': 'django.db.backends.mysql',
'name': 'django_test',
'host': '127.0.0.1',
'user': 'root',
'password': '123456',
'port': '3306',
},
#配置第二个数据库
'test': {
'engine': 'django.db.backends.mysql',
'name': 'xsanjiaocheng',
'host': '127.0.0.1',
'user': 'root',
'password': '123456',
'port': '3306',
}
}
#设置数据库路由,一般直接照抄即可,不用修改
database_routers = ['django_test.database_router.databaseappsrouter']
#配置数据库与app的对应关系
database_apps_mapping = {
# example:
# 'app_name':'database_name',
# 'app01': 'test',
'app01': 'default',
'app02': 'test',
}
2、 在对应的app里的models.py文件里正常创建数据表即可(在创建表时尽量不要使用同样的表名)
app01中的models.py:
class django_test_1(models.model):
abc = models.charfield(max_length=20)
class meta:
app_label='app01'
app02中的models.py:
class test_1(models.model):
tests= models.charfield(max_length=20)
3、 生成迁移文件
和以前一样:python manage.py makemigrations
4、 迁移数据库
迁移时需指定数据库名
python manage.py migrate database=test
如果针对已创建好的数据库创建对应的models.py文件不用生成迁移文件,直接执行“python manage.py inspectdb > app02/models.py --database=test”的命令即可。
5、操作数据库
1)手动选择数据库
django_test_1.objects.using('default').create(abc='hdajh')
2)自动选择数据库
和以前一样不加using()。
6、 配置urls.py
导入对应app的views.py的文件。最好命名个别名,或者给views.py文件重命名。
其他使用和以前一样。
上一篇: OC内存管理、非ARC机制、MRR机制
下一篇: 用c语言基本实现wc.exe功能