Django之ORM单表CURD
需提前准备下测试脚本,可参考Django测试脚本准备
下面操作的所有代码都是要编写在测试脚本下的(setup()后面)
单表操作
""" 新增 """
# 方式一:create()
models.User.objects.create(name="fer3", age=18, register_time=datetime.datetime.now())
# 方式二:对象.save()
import datetime
from User.models import User
user_obj = User(name="fer", age=18, register_time=datetime.datetime.now())
user_obj.save()
""" 修改 """
# 方式一:update()
models.User.objects.filter(pk=1).update(name="fer3", age=18)
# 方式二:对象.save()
update_obj = models.User.objects.filter(pk=1).first()
update_obj.name = "fer1"
update_obj.save() # 最后一定要save一下
""" 删除 """
# 方式一:update()
models.User.objects.filter(pk=1).delete()
# 方式二:对象.delete()
delete_obj = models.User.objects.filter(pk=1).first()
delete_obj.delete()
""" 查询 """
# 带有过滤条件,类似where
models.User.objects.filter(name="fer")
# 查询所有数据
models.User.objects.all()
# 直接拿数据对象,但是条件不存在直接报错
models.User.objects.get("name")
""" 补充:django ORM常用小方法 """
first() # 获取queryset里面第一个元素
last() # 获取queryset里面最后一个元素
values() # 需要查询是数据,类似原生sql中 select * from user; *位置的参数,返回的结果是一个queryset对象(列表套字典的形式)
values_list() # 需要查询是数据,类似原生sql中 select * from user; *位置的参数,返回的结果是一个queryset对象(列表套元组的形式)
count() # 统计查询数量
order_by() # 排序,默认是升序,在参数前面加-号变成降序,eg: order_by("-id")
exclude() # 排除...在外
distinct() # 去重