Django之ORM简单使用

ORM简介

ORM:对象关系映射,模型映射(Django这一重量级框架的一个特点。)
django中内嵌了ORM框架,ORM框架可以将【类和数据表进行对应起来】,只需要通过类和对象就可以对数据表进行操作。
设计类:模型类。
ORM另外一个作用:根据设计的类生成数据库中的表。
总结性的说:django中带orm工具,orm工具是干什么呢?就是对数据库操作的一个封装。
比如查询数据:select * from 表名 where id =3;
那使用orm工具:那个表对应着的class类的名字.objects.get(id=3)
那个表对应着的class类的名字.objects.filter(id=3)
objects是固定的写法,但是能不能改呢??可以改。
一般没有什么特殊要求的话,咱们一般不改。
使用orm工具好处:后期升级、维护的工作量少,易于扩展和升级。
orm本质是什么:通过操作类和对象以及对象的属性来达到操作mysql数据表以及表的字段的功能。

再简单说一下好处:
比如我们的项目是v1.0版本,在这个版本我们使用的数据库叫做db.sqlite3这个数据库,那我们在项目中写的数据库代码肯定是符合db.sqlite3这个数据库的。现在我们要升级项目,升级成v2.0版本,在这个版本中我们想要使用的数据库叫做mysql数据库,那怎么办呢?我们是不是要将这个项目中所有关于db.sqlite3这个数据库的代码都改换成mysql数据库代码的代码,这样的工程量太大了,后期维护的成本太高了,所以,就有一个ORM的工具出来了,这个ORM工具的好处,就是可以不用写具体的sql语句,而是在项目中写面向对象的语法来达到操作数据库的功能,那这样的话,不管你的项目中使用的mysql数据库还是db.sqlite3这个数据库,我们只需要修改一下配置文件,就可以达到切换数据库的功能,总之我项目中的代码是不需要大量的维护的,这样可以节省人力和时间。

模块类设计

在应用中的model.py文件中设计模型类,此类必须继承models.Model类。
models.ForeignKey可以建立两个模型类之间一对多的关系,也就是创建外键从而建立两个表之间一对多的关系。(注意:主键的id字段会自动的生成,不用自己去定义)
(在2.0版本以后,使用外键需要添加on_delete属性,具体的讲解请查看这个网址:
https://blog.csdn.net/weixin_35045973/article/details/113453958

from django.db import models

# Create your models here.
class BookInfo(models.Model):
    '''
    图书模型类
    '''
    btitle = models.CharField(max_length=20)#max_length=20相当于数据库中varchar(20)
    b_date = models.DateField()



class HeroInfo(models.Model):
    '''
    英雄人物模型类
    '''
    hname = models.CharField(max_length=20)
    hgender = models.BooleanField(default=False)
    hcomment = models.CharField(max_length=128)
    hbook = models.ForeignKey('BookInfo')

根据模型类生成表

  1. 根据模型类生成迁移文件
python manage.py makemigrations

在这里插入图片描述
也可以在pycharm中:在这里插入图片描述
这个地方代码,不过打开这个后就不用了写python manage.py了,底层已经有了,而且在这里输入有代码提示,不用记住这个较长的命令。
在这里插入图片描述
这里如果直接输入makemigrations会将所有的应用的模型类都生成迁移文件,如果只想让某个应用的模型类生成迁移文件,那么在后面直接写应用名即可。

  1. 执行迁移文件生成表
python manage.py migrate

在这里插入图片描述
和上面那个一样,可以指定执行哪个应用的迁移文件。
注意:每当数据库中表的结构(如:表名、属性等)发生变化以后,需要重新生成一下迁移文件,并且需要重新执行一下该文件。

默认的数据库为sqlites3:是一个小型的关系型数据库,经常用于移动端。
生成表名的默认格式:应用名_模型类名小写。
使用pycharm中自带的打开数据库的功能:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通过模型类操作数据表

  1. 进入项目shell命令
    在这里插入图片描述
    或者在pycharm中:
    在这里插入图片描述
    进入交互环境。
  2. 导入模型类
  3. 向booktest_info表中插入一条数据
    在这里插入图片描述
    在这里插入图片描述
  4. 查询booktest_bookinfo表中id为1的数据
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  5. 修改字段的值
    在这里插入图片描述
    千万要记住要写save,否则不会修改表中数据。
  6. 删除一条数据
    在这里插入图片描述
    这里补充一下,在查询一条数据时,如果查不到的话就会报DoesNotExist的错误。
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值