Django入门之模型操作数据

Django 3.0框架之模型操作数据,本篇通过终端来使用模型操作数据。

目录

启动django命令行

引入

增删改查

查询所有数据

添加数据

查看某个对象

修改数据

删除数据

关联对象

添加关联数据

获取关联对象集合

关联对象添加

总结


启动django命令行

命令

python manage.py shell

启动以后界面如下:

引入

引入包和模型类

from myapp.models import Grades,Students

from django.utils import timezone

from datetime import *

增删改查

查询所有数据

例子:类名.objects.all()

Grades.objects.all()

效果如下图:

 

添加数据

本质:创建一个模型类的对象实例

grade1 = Grades()

grade1.name = 'python1'

grade1.girl_num = 5

grade1.boy_num = 8

grade1.create_time = datetime(year=2023, month=4, day=23)

grade1.save()


grade2 = Grades()

grade2.name = 'python2'

grade2.girl_num = 6

grade2.boy_num = 7

grade2.create_time = datetime(year=2023, month=4, day=23)

grade2.save()

 

查看某个对象

Grades.objects.get(pk=2)

 

 pk就是primary key的缩写,也就是任何model中都有的主键。

那么id大部分时候也是model的主键,所以在这个时候我们可以认为pk和id是完全一样的。

修改数据

grade1.name = 'python01'

grade1.save()

删除数据

Grades.objects.get(pk=3).delete()  # 物理删除

关联对象

很多时候业务都是关联数据操作,不是一对一操作,下面演示关联操作。

添加关联数据

首先往班级1中添加三个学生,用作下面例子进行关联操作。

grade1 = Grades.objects.get(pk=1)


stu = Students()

stu.name = '薛仁贵'

stu.gender = False

stu.age = 18

stu.desc = '千军万马避白袍'

stu.grades = grade1

stu.save()


stu1= Students()

stu1.name = '岳飞'

stu1.gender = False

stu1.age = 30

stu1.desc = '三十功名尘与土,八千里路云和月'

stu1.grades = grade1

stu1.save()


stu2= Students()

stu2.name = '花木兰'

stu2.gender = True

stu2.age = 21

stu2.desc = '替父从军'

stu2.grades = grade1

stu2.save()

 

获取关联对象集合

需求:获取python1班级所有学生。

grade1 = Grades.objects.get(pk=1)

grade1.students_set.all()

如下显示的是python1班级的所有学生的对象。因为班级本来就有学生,故显示超出3个。

 

关联对象添加

需求:创建曾志伟同学,属于python2班级

grade2 = Grades.objects.get(pk=2)

grade2.students_set.create(name=u'曾志伟', gender=True, desc=u'我叫曾志伟', age=45)

 不需要save,直接添加到数据库中。

数据表中新增了一条数据。

总结

虽然是在命令行中操作的数据增删改查和关联操作,但是这些在模型和视图中都是同样可以使用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值