【django入门】 06 ORM对数据增删改查
在views.py中
新增
def index(request):
    UserInfo.objects.create(name="Name1", password="123", age=19)
    UserInfo.objects.create(name="Name2", password="123", age=19)
    UserInfo.objects.create(name="Name3", password="123", age=19)
return HttpResponse("anything1")
删除
def index(request):
	UserInfo.objects.filter(id=1).delete()
	UserInfo.objects.filter(name="Name2").delete()
	UserInfo.objects.all().delete()
	return HttpResponse("done")
2: 删除某个id的行
3: 删除所有满足特定条件的行
4: 删除所有行
查询
返回的是QuerySet类型 [行,行,行……]
每一行都是一个对象object
- 查询返回每一项
def index(request):
    UserInfo.objects.create(name="Name1", password="123", age=19)
    UserInfo.objects.create(name="Name2", password="123", age=19)
    UserInfo.objects.create(name="Name3", password="123", age=19)
    data_list = UserInfo.objects.all()
    for obj in data_list:
        print(obj.id, obj.name, obj.password, obj.age)
- 查询返回特定项
def index(request):
    UserInfo.objects.create(name="Name1", password="123", age=19)
    UserInfo.objects.create(name="Name2", password="123", age=19)
    UserInfo.objects.create(name="Name3", password="123", age=19)
	
    row_obj = UserInfo.objects.filter(age=19).last()
    print(row_obj.id, row_obj.name, row_obj.password)
    return HttpResponse("done")
三行数据age都=19,filter实际没有筛掉任何数据,last()是三行的最后一行,因此print的是Name3相关信息
但假如filter筛选结果仅一行,也需要在最后添加.last()或.first(),才能得到object
修改
- 修改所有项目
def index(request):
    UserInfo.objects.create(name="Name1", password="123", age=19)
    UserInfo.objects.create(name="Name2", password="123", age=19)
    UserInfo.objects.create(name="Name3", password="123", age=19)
    UserInfo.objects.all().update(age=11)
    return HttpResponse("done")
- 修改特定项目
def index(request):
    UserInfo.objects.create(name="Name1", password="123", age=19)
    UserInfo.objects.create(name="Name2", password="123", age=19)
    UserInfo.objects.create(name="Name3", password="123", age=19)
    UserInfo.objects.filter(name="Name1").update(age=10)
    return HttpResponse("done")
来源:BV1NL41157 武沛齐《2022 B站最详细django3教程(django从入门到实践)》P12-P16
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号