DjangoDRF框架中的ORM

什么是ORM?

即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了 ,通过xxxx.属性=yyyy一样简单,这是开发ORM的初衷.

一个句话理解就是:创建一个实例对象,用创建它的类名当做数据表名,用创建它的类属性对应数据表的字段,当对这个实例对象操作时,能够对应MySQL语句;

Django开发的5项基础核心技术包括模型(Model)的设计,URL的配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用; DjangoDRF框架的开发核心有序列化器和反序列化器;

高级技术包括用户的验证与授权,后台的设计和管理,数据库缓存,文件处理和服务器端的配置等等。

模型(Model)的设计:

Model (模型) 简而言之即数据模型。模型不是数据本身(比如数据库里的数据),而是抽象的描述数据的构成和逻辑关系。每个Django Model实际上是个类,对应的是数据库中的一个表,每模型类它都继承了models.Model。每个模型类应该包括属性,关系(比如一对多,一对一和多对多)和方法。当你定义好Model模型后,Django的接口会自动帮你在数据库生成相应的数据表(table)。这样你就不用自己用SQL语言创建表格或在数据库里操作创建表格了;

不管怎么着,创建模型类最终要继承自models.Model; 例:创建一个商品类别的 模型类:

没有直接继承自models.Model, 跟我们自己的业务逻辑有关:

定义完模型类之后我们要进行数据库迁移的操作:

python manage.py makemigrations

python manage.py migrate #    执行完之后数据库中会生成相应的表的信息

生成迁移文件:根据模型类生成sql语句,迁移文件被生成到应用的migrations目录 

我们需要记录用户的创建及更新时间锁增加的额外的模型类:

(如果不明白请忽略BasemModel 这张表, 可以把模型类继承的BaseModel改成models.Model):

对应关系如下(如果不明白请忽略BasemModel 这张表):

CharField()是他的字段类型和约束: 详细的可以搜索 Django模型类的字段类型;

菜鸟上路,请各位多多指教.

猜你喜欢

转载自blog.csdn.net/Bin_1022/article/details/81227809