【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号