同步数据库
oauth/models.py 中没有指定数据库和表名,但是能直接连接数据库完成添加字段的操作,是因为 settings.py 中配置了数据库信息的原因吧?这里我有一个疑问,一个项目应该不会只用一张表,那么 settings.py 中的 DATABASES 字典中如果添加了多张表,在 migrate 的时候如何确定 models.py 是要同步哪一张表?还有,如果一个项目中有多个app,每个app中也可能都有 models.py ,在 migrate 的时候如何确定是同步哪个app下的 models.py 到哪一张表?
正在回答 回答被采纳积分+1
同学,您好。
Django中可以由模型类的定义直接生成对应的数据库表,原因是Django会根据settings中数据库的配置去自动创建表,底层也是调用SQL语句去执行的。但是在settings中配置的是数据库的名称,而非某一张表的名称,如下图:
若项目中只配置一个数据库(如图所示),所有的model都会对应生成“app_模型类名称小写”这种形式的表,相互之间的名称都不相同,且都存储于上图中配置的数据库中。
那么当一个项目配置了多个数据库时,此时Django会依据自身的数据库路由机制生成对不同app下的模型类的表(该路由机制难以模拟,请暂时予以记忆性理解),
如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~
- 参与学习 人
- 提交作业 218 份
- 解答问题 3562 个
本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星