1、增加数据
我们前面新建了一张表,类名为UserInfo,对应的表名为app01_userinfo
主键为id,django会自动帮我们创建
name,password为字符串类型,最大长度为32,64
我们这里先给age设定一个默认值
(实际过程中我们的主键可能叫其他的名字,uid,userID等等,那我们在创建字段的时候,需要给他设定一个主键,如 uid = models.CharField(max_length=32,primary_key=True)
from django.db import models
# Create your models here.
class UserInfo(models.Model):
name = models.CharField(max_length=32)
password = models.CharField(max_length=64)
age = models.IntegerField(default=2)
往这张表里面增加数据:
UserInfo.objects.create(name='panhui', password='123', age=18)
UserInfo.objects.create(name='tom', password='123')
执行上诉代码即插入了一条数据,由于age我们之前设定了默认值,不填的话就指定默认值
2、删除数据
还是以UserInfo类为例
# filter用来过滤数据,delete删除
UserInfo.objects.filter(id=1).delete()
# all表示全部数据
UserInfo.objects.all().delete()
执行上诉代码即删除数据
3、查询获取数据
还是以UserInfo类为例
QuerySet = UserInfo.objects.all()
for obj in QuerySet:
print(obj.id, obj.name, obj.password, obj.age)
all 表示获取表内所有数据,实际上是一个QuerySet对象,对象里面每一个元素都是一个对象,我们可以访问元素对象的属性值
打印结果如下:
1 panhui 123 18
2 tom 123 2
我们也可以通过filter来过滤,注意:这样查到的仍然是一个QuerySet对象,只不过他里面只放了一个元素对象
QuerySet = UserInfo.objects.filter(id=1)
for obj in QuerySet:
print(obj.id, obj.name, obj.password, obj.age)
打印结果如下:
1 panhui 123 18
如果我们明明知道查询出来的结果就只有一行数据,可以用first快捷获取
obj = UserInfo.objects.filter(id=1).first()
print(obj.id, obj.name, obj.password, obj.age)
4、更新数据
还是以UserInfo类为例
使用update来更新数据
# 将表中所有数据的password改为999
UserInfo.objects.all().update(password='999')
# 将id为1的数据的password改为999
UserInfo.objects.filter(id=1).update(password='999')
执行上诉代码即修改更新数据库数据