ORM的基础操作 - 指南

ORM的功能:

  • 创建、修改、删除数据库中的表(不用写mysql语句),但是无法创建数据库
  • 操作表中的数据(不用写mysql语句)

一、安装第三方模块

1.方法一:

在pycharm中,打开终端,输入pip install mysqlclient。如图:
在这里插入图片描述

注意:在windows系统中可能会安装失败,失败则采用方法二

2.方法二

在浏览器中搜索mysqlclient wheel,并下载。如图:
在这里插入图片描述

二、django链接数据库

setting.py中找到mysql连接的代码,并将其修改为自己的数据库
代码如下:

DATABASES = {
'default':{
'ENGINE': 'django.db.backends.mysql',
'NAME': 'lgq',# 连接的数据库名字
'USER': 'root',# 账号
'PASSWORD': '123456',# 密码
'HOST': '127.0.0.1',# 本地用户
'POST': '3306'
}
}

结果如图所示
在这里插入图片描述

三、django操作表

在models.py中写入操作代码

创建表

代码如下

class UserInfo(models.Model):
name = models.CharField(max_length=32)
password = models.CharField(max_length=64)
age = models.IntegerField()

相当于执行MySQL中的创建代码,对应如下

 create table app01_userinfo(
     id bigint auto_increment primary key,
     name varchar(32),,
     password varchar(64),
    age int
)

在models.py中输入后,打开终端,输入python manage.py makemigrations并回车后输入python manage.py migrate并回车
创建完,打开数据库看是否生成对应表,如图
在这里插入图片描述

操作表

  • 想要创造新表,直接在models.py中加入新的类并执行打开终端,输入python manage.py makemigrations并回车后输入python manage.py migrate并回车操作即可
    如图在这里插入图片描述

然后创建成功,如图
在这里插入图片描述

  • 删除表同理(删除类,终端输入命令)

操作表中信息

  • 删除表中某一列,操作与删除表同类(在类中删除相对于代码,然后在终端执行命令)
  • 创建新信息(在表中新增列时,由于已存在的列中可能有数据,所以新增列必须指定新列对应的数据)
    • 方法一:在操作完类之后,输入python manage.py makemigrations后会出现选项,选择1回车,然后手动输入一个值。如图
      在这里插入图片描述
    • 方法二:设置默认值,如age = models.IntegerField(default=1)
    • 方法三:允许为空,如data = models.IntegerField(null = Ture, black = Ture)

四、操作表中的数据

表中新增数据

  • 第一步:在view.py中导入你需要引用的类名如:from app01.models import UserInfo
  • 第二步:建立urls.pyviews.py之间的联系,如:在views.py中新建orm类,并在urls.py中的urlpatterns中添加path("orm/", views.orm)
  • 第三步:在views.py中的orm类中输入需要增加数据的代码如图
    在这里插入图片描述
  • 第四步:在orm中添加网页代码如return HttpResponse("成功")
  • 第五步:在终端输入运行代码python manage.py runsever并访问orm
    最后生成在对应的数据库中生成相对应的数据,如图
    在这里插入图片描述
    注意:我这个是运行了两次生成的数据

删除数据

  • 筛选删除:与新增同理,区别只有第三步中在views.py中的orm类写入删除代码,如:UserInfo.objects.filter(name="贤者").delete()后续步骤与新增同理。删除结果如图
    在这里插入图片描述
  • 全部删除:步骤与筛选删除一致,代码使用UserInfo.objects.all().delete(),就可以将表中所有数据删除。

筛选数据

  • 选择一个表中的所有信息:步骤之前新增,删除数据一致,只有第三步中代码不同data_list=UserInfo.objects.all(),注意返回对象是QuerySet类型,相当于data_list=[行数据,行数据,行数据]形式,想要输出需要使用遍历代码,如:
for obj in data_list:
print(obj.id, obj.name, obj.password, obj.age)
  • 筛选某一数据:步骤一致,代码使用data_list=UserInfo.objects.filter(id=1),注意不管有几个数据都是使用QuerySet类型接收,想要输出也需要遍历
  • 获取第一条数据:使用代码row_obj = UserInfo.objects.filter(id=1).first(),想要输出使用代码print(row_obj.id, row_obj.name, row_obj.password, row_obj.age)

更新数据

  • 更新某一列的所有数据:步骤一致,使用代码UserInfo.objects.all().update(想要更新的数据),如:UserInfo.objects.all().update(password=999)
  • 更新筛选出来的数据:步骤一致,使用代码UserInfo.objects.filter(id=1).update(age=30)
posted @ 2025-11-25 11:20  gccbuaa  阅读(8)  评论(0)    收藏  举报