Django 使用ORM模型操作数据库

时间:2022-09-12 14:55:29

ORM

ORM,全称 Object Relational Mapping,中文叫做对象关系映射,通过 ORM 我们可以通过类的方式去操作数据库,而不用再写原生的SQL语句。通过把表映射成类,把行作实例,把字段作为属性,ORM在执行对象操作的时候最终还是会把对应的操作转换为数据库原生语句。

使用ORM有许多优点:

  • 易用性

使用 ORM 做数据库的开发可以有效的减少重复SQL语句的概率,写出来的模型也更加直观、清晰。

  • 性能损耗小

ORM 转换成底层数据库操作指令确实会有一些开销。但从实际的情况来看,这
种性能损耗很少(不足5%),只要不是对性能有严苛的要求,综合考虑开发效率、代码的阅读性,带来的好处要远远大于性能损耗,而且项目越大作用越明显。

  • 设计灵活

可以轻松的写出复杂的查询。

  • 可移植性

Django 封装了底层的数据库实现,支持多个关系数据库引擎,包括流行的 MySQL 、PostgreSQL 和 SQLite 。可以非常轻松的切换数据库。

创建ORM模型

ORM模型一般都是放在app的 models.py 文件中。每个 app 都可以拥有自己的模型。

并且如果这个模型想要映射到数据库中,那么这个app必须要放在settings.py的 INSTALLED_APP中进行安装。

  • 示例代码(简单的书籍ORM模型)

      from django.db import models
      class Book(models.Model):
          name = models.CharField(max_length=20,null=False)
          author = models.CharField(max_length=20,null=False)
          pub_time = models.DateTimeField(default=datetime.now)
          price = models.FloatField(default=0)

注意!在django中,如果一个模型没有定义主键,那么将会自动生成一个自动增长的int类型的主键,并且这个主键的名字就叫做id

映射模型到数据库中

1.在setting.py 中,配置好 DATABASES,做好数据库相关的配置。

2.在app中的 models.py 中定义好模型,这个模型必须继承自django.db.models 。

3.将这个app 添加到 settings.py的 INSTALLED_APP中。

4.在命令行终端进入到项目所在的路径,然后执行命令 python manage.py makemigrations 来生成迁移脚本文件。

5.同样在命令行中,执行命令 python manage.py migrate 来将迁移脚本文件映射到数据库中。