无论是springboot的MVC还是Django的MTV都有共同的M部分(Model)
springboot有很多的orm框架,最常用的是mybatis,而Django使用的是mysqlclient
springboot连接数据库的方式是jdbc,而Django连接数据库的方式是pymysql或者是mysqlclient,这里我使用mysqlclient来连接数据库
【资料图】
我在pycharm中来做一个环境配置
首先在pycharm的配置好解释器,这里我选用了我的conda环境里的base
以后window的项目学习都在base中进行,在命令行中激活base后
我的电脑已经有mysql了,这里就只需要下载mysqlclient
配置链接数据 ,数据库‘django’得先创建出来
模型是一个python的类,继承了django.db.models.Model。
一个模型类就代表数据库中的一张表。
每一个类的类属性就代表着数据库中的一个字段。
模型是数据交互的接口,是表示和操作数据库的方法和方式
对象关系映射框架,可以避免对SQL的语句的直接编写,可以通过面向对象的方式来操作数据库。
可以实现数据库和数据模型的解耦。
当然性能上有损失,但是这是可容忍的。
migrate的执行会去查询数据库中django_migration执行的哪个migrate的文件,对当前所有的文件进行比对,然后继续执行,实现一个增量执行,而不必每次执行所有增量,效果高
但是以上这种处理方式在多人协作的时候,可能出现当前数据库的修改和本地记录的migration文件不一致的情况,可能会导致命令报错,最简单的方法就是重新初始化:删除数据库,重新建库,重新生成所有migrations的migrate文件,执行这些文件。
重新生成数据库表的时候出现的“not null”and “no default”的问题,解决方案很简单:对非空的字段加上默认值。
如果模型没有声明主键,那么django将自动生成一个主键id字段给数据库表
与django的migrate相比,springboot还是太原始了。