Django 操作表中的数据(增删改查)
1.新建数据
我之前已经在数据库中创建了两张表,如下
在urls.py文件中添加一行代码,然后再在views.py文件中编写函数
(将 URL 路径 orm/ 映射到 Django 视图函数 views.orm,当用户访问 orm/ 时,Django 会调用 orm 视图函数处理请求)
在views.py中先将表导入进来,Department,UserInfo是创建两张表的类名
我向UserInfo表中创建了两条数据
app01注意改成你自己创建的app名称
from app01.models import UserInfo
def orm(request):
UserInfo.objects.create(name="柳贯一", password="123", age=19)
UserInfo.objects.create(name="李暮春", password="666", age=22)
return HttpResponse("成功")
运行
访问127.0.0.1:8000/orm/
查看mysql,数据新建成功
我发现,多次刷新(提交)网页,数据会被多次添加,例如
运行之前的表
运行,并多次刷新
数据多次被添加
2.删除数据
现在我的数据库拥有下面两张表
现在我想删除app01_userinfo表中id=2的数据,删除app01_department表中所有的数据
def orm(request):
# 新建
# Department.objects.create(name="销售部")
# Department.objects.create(name="IT部")
# Department.objects.create(name="运营部")
# UserInfo.objects.create(name="柳贯一", password="123", age=19)
# UserInfo.objects.create(name="李暮春", password="666", age=22)
# 删除
UserInfo.objects.filter(id=2).delete()
Department.objects.all().delete()
return HttpResponse("成功")
运行
删除成功
3.获取数据
def orm(request):
# # 新建
# Department.objects.create(name="销售部")
# Department.objects.create(name="IT部")
# Department.objects.create(name="运营部")
# UserInfo.objects.create(name="柳贯一", password="123", age=19)
# UserInfo.objects.create(name="李暮春", password="666", age=22)
# # 删除
# UserInfo.objects.filter(id=2).delete()
# Department.objects.all().delete()
# 获取数据
# 查询所有数据
data_list = UserInfo.objects.all()
for obj in data_list:
print(obj.id, obj.name, obj.password, obj.age)
# 查询 id=1 的记录
data_list = UserInfo.objects.filter(id=1)
print(data_list)
# 获取 id=1 的第一条记录
row_obj = UserInfo.objects.filter(id=1).first()
print(row_obj.id, row_obj.name, row_obj.password, row_obj.age)
return HttpResponse("成功")
UserInfo.objects.all():查询 UserInfo 表中的所有数据,返回一个 QuerySet
UserInfo.objects.filter(id=1):查询 id=1 的记录,返回一个 QuerySet。
UserInfo.objects.filter(id=1).first():获取 id=1 的第一条记录,返回一个 UserInfo 对象。
运行
查看结果
4.更新数据
为了更好展示,我在app01_userinfo表中新建了多个数据
def orm(request):
# # 新建
# Department.objects.create(name="销售部")
# Department.objects.create(name="IT部")
# Department.objects.create(name="运营部")
# UserInfo.objects.create(name="柳贯一", password="123", age=19)
# UserInfo.objects.create(name="李暮春", password="666", age=22)
# UserInfo.objects.create(name="王永和", password="777", age=28)
# UserInfo.objects.create(name="丁癸丑", password="789", age=54)
# # 删除
# UserInfo.objects.filter(id=2).delete()
# Department.objects.all().delete()
# # 获取数据
# # 查询所有数据
# data_list = UserInfo.objects.all()
# for obj in data_list:
# print(obj.id, obj.name, obj.password, obj.age)
# # 查询 id=1 的记录
# data_list = UserInfo.objects.filter(id=1)
# print(data_list)
# # 获取 id=1 的第一条记录
# row_obj = UserInfo.objects.filter(id=1).first()
# print(row_obj.id, row_obj.name, row_obj.password, row_obj.age)
# 更新数据
UserInfo.objects.all().update(password=999)
UserInfo.objects.filter(id=3).update(age=99)
UserInfo.objects.filter(name="王永和").update(age=88)
return HttpResponse("成功")
UserInfo.objects.all():选择 UserInfo 表中的所有记录。
.update(password=999):将选中记录的 password 字段值设置为 999
filter(id=3):筛选 id=3 的记录。
.update(age=99):将选中记录的 age 字段值设置为 99。
filter(name="王永和"):筛选 name 为 "王永和" 的记录。
.update(age=88):将选中记录的 age 字段值设置为 88。
运行
修改成功
学习:【最新Python的web开发全家桶(django+前端+数据库)-哔哩哔哩】 https://b23.tv/uJILl2D