对ORM的理解

Posted shangping

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对ORM的理解相关的知识,希望对你有一定的参考价值。

1. 在面试中可能会问到这个问题,什么是ORM?

ORM是对象关系映射(Object Relational Mapping),简称ORM,或O/RM,或O/R mapping,是一种程序技术。

白话理解:就是把我们定义的对象(类)映射到对应的数据库的表上,所以ORM就是代码(软件)层面对于数据库表和关系的一种抽象。

2. Django与ORM之间的关系

Django中的model就是ORM的一个具体实现。

3. ORM在Django中的具体体现

简单来说,就是继承了Django的Model,然后定义了对应的字段,Django就会帮我们把Model对应到数据库的表上,Model中定义的属性,比如:

1 name = model.CharField(max_length=50,verbose_name="名称")

这就对应了一个表的字段。所以说一个Model也就对应关系数据库中的一张表,而对于有关联关系的Model,比如用到了ForeignKey的Model,就是通过外键关联的表。

举个例子:

1 class User(models.Model):
2     name = model.CharField(max_length=20)

上边的这个例子可以对应到数据库的表:

FieldTypeNullKeyDefaultExtra
id int(11) NO PRI NULL auto_increment
name varchar(20) NO   NULL  

以上是关于对ORM的理解的主要内容,如果未能解决你的问题,请参考以下文章

金蝶handler中 collection 代码片段理解

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段

精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解

如何理解python的sqlalchemy这种orm框架

理解 DocumentFragment

ORM - 是不是需要 DDL 脚本?