Django - ORM框架的理解

最近了解到了,面向对象编程与ORM框架之间的关联,虽然以前做项目时,做过相关的代码,但是没去深入理解,现在就完成一个总结分析,加深记忆。

1.什么是ORM?

对象关系映射Object Relational Mapping,简称 ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。ORM框架是连接数据库的桥梁,只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。

ORM框架:为了解决面型对象与关系数据库存在的互不匹配的现象的框架。

当前ORM框架主要有五种:

  • (1)Hibernate 全自动写sql语句
  • (2)iBATIS 半自动 自己写sql语句,可操作性强,小巧
  • (3)mybatis
  • (4)eclipseLink
  • (5)JFinal

2.为什么使用ORM?

当我们实现一个应用程序时(不使用ORM),我们可能会写特别多数据访问层的代码,从数据库保存、删除、读取对象信息,而这些代码都是重复的。而使用ORM则会大大减少重复性代码。对象关系映射(Object Relational Mapping,简称 ORM),主要实现程序对象到关系数据库数据的映射。

3.对象-关系映射的优点:

  1. 简单:ORM以最基本的形式建模数据。比如ORM会将MySQL的一张表映射成一个类(模型),表的字段就是这个类的成员变量;
  2. 精确:ORM使所有的MySQL数据表都按照统一的标准精确地映射成面向对象编程的类方法,使系统在代码层面保持准确统一;
  3. 易懂:ORM使数据库结构文档化。比如MySQL数据库就被ORM转换为了程序员可以读懂的面向对象编程的类,程序员可以只把注意力放在他擅长的面向对象编程语言代码的类层面(如果能够熟练掌握MySQL就更好了);
  4. 易用ORM包含对持久类对象进行CRUD操作的API,例如create(), update(), save(), load(), find(), find_all(),where()等,也就是讲sql查询全部封装成了编程语言中的函数,通过函数的链式组合生成最终的SQL语句。通过这种封装避免了不规范、冗余、风格不统一的SQL语句,可以避免很多人为Bug,方便编码风格的统一和后期维护。

总结:

ORM框架,就是通过将SQL语句的增删查改等DML(Data Manipulation Language 数据操纵语言),用类封装起来,变成一个个的类接口方法,如create(), update(), save(), load(), find(), find_all(),where().
首先需要我们去调用面向对象编程语言内嵌的模板类的模板方法models.model.xxx , 构建好具体的数据库表模型,然后由ORM框架去将这些方法,映射转变为相应的 SQL 语句,然后再将这些 SQL 语句提交给数据库,从而间接完成与数据库的交流。

总之,使用ORM框架,就是用模型,也就是在某文件1内的DML建表操作,然后在另外的文件2内,写入其他的DML操作,如增删查改等等。

参考链接

Django ORM框架

django的ORM框架

django的ORM框架

Django 内嵌的ORM框架操作数据库全总结

sql语句之DML语句

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来回答您的问题。 首先,Django 是一个流行的 Python Web 框架,它提供了许多强大的功能,其中之一就是 ORM(对象关系映射)。 ORM 允许您使用 Python 对象来处理数据库操作,而不是直接编写 SQL 语句。这样做有很多好处,比如更容易维护和更易于理解。 下面是一些基本的 ORM 操作,用于在 Django 中执行增删改操作。 首先,要使用 ORM,您需要在您的 Django 项目中创建一个模型。模型是一个 Python 类,它代表了数据库中的一个表。 例如,这是一个简单的模型类,它代表了一个名为 `Book` 的表: ``` from django.db import models class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=100) published_date = models.DateField() ``` 接下来,我们可以使用以下代码将一个新的 `Book` 对象插入到数据库中: ``` book = Book(title='Django for Beginners', author='William Vincent', published_date='2021-01-01') book.save() ``` 我们可以使用以下代码来更新一个现有的 `Book` 对象: ``` book = Book.objects.get(title='Django for Beginners') book.author = 'William S. Vincent' book.save() ``` 最后,我们可以使用以下代码来删除一个 `Book` 对象: ``` book = Book.objects.get(title='Django for Beginners') book.delete() ``` 这些是最基本的 ORM 操作,但是 Django ORM 还提供了许多其他的高级功能,比如过滤、排序和聚合查询等。如果您想了解更多信息,请查看 Django 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值