Django入门——ORM (简单数据表)

写在开头

大家是不是从todoList过来的,在todoList案例中,我们说到,所有涉及到的数据库的操作,你不会看到任何一句SQL语句,取而代之的是ORM,这个ORM具体是什么呢?

所谓ORM,即(Object-Relationl Mapping), 它是关系型数据库和对象的一种映射关系,这里说到了两个名词,一是关系型数据库,在todoList案例中指的是Mysql数据库;二是对象,那么这个对象具体指代的是什么呢? 带着这个疑问🤔️, 耐心往下看.

数据库映射对象

这里我们新建一个应用 User, 在User模块下的models.py下建立一个类

from django.db import models


# Create your models here.
class UserModel(models.Model):
    username = models.CharField(max_length=20, default='default_user', verbose_name="用户名")
    password = models.CharField(max_length=30, verbose_name="密码")

然后执行以下两条命令

python manage.py makemigrations
python manage.py migrate

然后去观察你的数据库, 此时就会多一张表

观察会发现,数据表名称好像是有规律的,表名默认为 [创建的应用名_数据类名小写 ]

如何改变这个表名呢? 改造上面的对象模型,然后重新执行那两个命令

class UserModel(models.Model):
    username = models.CharField(max_length=20, default='default_user', verbose_name="用户名")
    password = models.CharField(max_length=30, verbose_name="密码")
    
    class Meta:
        db_table = "User"
        verbose_name = "User"
        verbose_name_plural = verbose_name

再去观察数据库

 CURD

增加

选中这个窗口

from User.models import UserModel   # 将数据库对象引入 

 方式1

UserModel.Objects.create(username='admin', password='123456')

方式2

user = UserModel(username='jake', password='123')
user.save()

查找

UserModel.objects.all()

UserModel.objects.filter()

UserModel.objects.filter(username='admin')

UserModel.objects.get(username="admin")

前面三种方式查询结果都是QuerySet类型, (类似集合的概念), 后面使用get查询结构是UserModel类型

 修改

方式1 使用update (只能对集合结果使用)

UserModel.objects.all().update(password='123456aaa')

返回结果为影响的行数

方式2  对象修改某些属性后调用save方法

user = UserModel.objects.get(username='admin')
user.password = '123123admin'
user.save()

删除

UserModel.objects.filter(username='admin').delete()

UserModel.objects.all().delete()   # 慎用

UserModel.objects.get(id=8).delete()

写在最后

以上就是简单数据表的ORM基础操作,如果想要了解更多,这里会是更好的选择

Django4.0 模型-快速上手_w3cschool模型准确且唯一的描述了数据。它包含您储存的数据的重要字段和行为。一般来说,每一个模型都映射一张数据库表。_来自Django4 中文教程,w3cschool编程狮。icon-default.png?t=N7T8https://www.w3cschool.cn/django4/django4-zfep3lzm.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值