增加数据

第一种方式

1
2
3
4
5
6
7
8
9
10
def index(request):
#创建记录方式1
#实例化要添加的记录(对象)
student_obj = models.Student(
name='dazhuang',
age=23,
)
#自动刷新并存储到数据库
student_obj.save()
return render(request,'index.html')

第二种方式 常用方法

1
2
3
4
5
6
7
def index(request):
#创建记录方式2
# new_obj为返回值,返回这个类的对象 (model对象)
new_obj = models.Student.objects.create(name='xiaozhuang',age=5)
print(new_obj.name)
print(new_obj.age)
return render(request,'index.html')

第三种方式 批量创建

1
2
3
4
5
6
7
8
9
10
def index(request):
#创建方式3 批量创建
objs = []
for i in range(20):
obj = models.Student(
name='xiangxi%s'%i,
age = 10+i,
)
objs.append(obj)
models.Student.objects.bulk_create(objs)

第四种方式 update_or_create

有就更新,没有就创建

1
2
3
4
5
6
models.Student.objects.update_or_create(
name='xiangxi0',
defaults={
'age':48,
}
)

删除数据

通过model对象或queryset对象调用delete方法

1
2
3
4
def delete(request):
# models.Student.objects.get(id=2).delete()
models.Student.objects.filter(name='xiaozhuang').delete()
return render(request,'index.html')

简单查询数据

获取全部数据

利用all()方法

1
2
3
4
5
6
7
def select(request):
# 查询所有记录 如果不是一条数据,则返回一个结果集 类似于列表
all_objs = models.Student.objects.all()
print(all_objs)
for i in all_objs:
print(i.name)
return render(request,'index.html')

条件查询 filter

查询条件作为参数传入即可。

查到返回结果,否则反回空列表(QuerySet对象)

1
2
3
4
5
def select(request):
#条件查询 查询id等于3的数据
objs = models.Student.objects.filter(id=3)
print(objs)
return render(request,'index.html')

条件查询 get

与filter类似,但返回的是model对象。get方法有且必须只有一条记录

更新数据

修改数据只能是queryset对象,不能是model对象

1
2
3
def update(request):
models.Student.objects.filter(id=1).update(age=38)
return render(request,'index.html')