Django(2) - 模型的定义和数据操作

定义模型

有一个数据表就对应有一个模型
在models.py文件中定义模型
引入:from django.db import models
模型类要继承models.Model类
示例:

class Grades(models.Model):
gname = models.CharField(max_length=20)
gdate = models.DateTimeField()
ggirlnum = models.IntegerField()
gboynum = models.IntegerField()
isDelete = models.BooleanField(default=False)
class Students(models.Model):
sname = models.CharField(max_length=20)
sgender = models.BooleanField(default=True)
sage = models.IntegerField()
scontend = models.CharField(max_length=20)
isDelete = models.BooleanField(default=False)
sgrade = models.ForeignKey("Grades", on_delete=models.CASCADE,)

说明:
不需要定义主键,在生成时自动添加,并且值为自动增加
在数据库中生成数据表
生成迁移文件
执行 python manage.py makemigrations 在migrations目录下生成一个迁移文件,此时数据库中还没有生成数据表
执行迁移
执行 python manage.py migrate 相当于执行MySQL语句创建了数据表

测试数据操作

进入到python shell
执行 python manage.py shell
引入包

from myApp.models import Grades, Students
from django.utils import timezone
from datetime import *
查询所有数据

类名.objects.all()
示例:

 Grades.objects.all()
添加数据

本质:创建一个模型类的对象实例
示例:CMD窗口下:

grade1 = Grades()
grade1.gname = "python04"
grade1.gdate = datetime(year=2017, month=7, day=17)
grade1.ggirlnum = 3
grade1.gboynum = 70
grade1.save()
查看某个对象

类名.objects(pk=索引号)
示例:

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

修改某个数据
模型对象属性 = 新值
示例:

grade2.gboynum = 60
grade2.save()

删除数据
模型对象.delete()

grade2.delete()

注意:这是物理删除,数据库中的相应数据被永久删除

关联对象

示例:

stu = Students()
stu.sname = "Xue Yanmei"
stu.sgender = False
stu.sage = 20
stu.scontend = "I am Xue Yanmei"
stu.sgrade = grade1
stu.save()

获得关联对象的集合
需求:猎取python04班级的所有学生
对象名.关联的类名小写_set.all()
示例:grade1.students_set.all()
需求:创建曾志伟,属于python04班级
示例:

stu3 = grade1.students_set.create(sname=u'Zhen Zhiwei',sgender=True,scontend=u"I am Zhen Zhiwei",sage=45)

注意:这样创建的数据直接被添加到了数据库当中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值