django对数据库的操作分为增删改查:
增操作的操作方式
# 方式一
car = Car(name="宝马3",price=20.5)
car.save()
# 方式二
car = Car()
car.name="宝马5i"
car.price=50.5
car.save()
# 方法三
Car.objects.create(name='奥迪Q1',price=34.5)
car={"name":"奥迪q5","price":100}
Car.objects.create(**car)
删除操作
使用delete() 基于查询, 先查取出来,再执行删除
User.objects.get(id=1).delete()
修改操作
# 修改使用save() 基于查询,先查询出来,再去修改,存储
user=User.objects.get(id=id)
user.name='aimashi'
user.save()
# 也可以使用 filter(xxx=). update(xxx=)
User.objects.filter(id=1).update(name='aimashi')
查询操作
'''
过滤器:
filter() 选出符合条件的数据 exclude() 去掉符合条件的数据
过滤器可以连续使用,链式调用
'''
'''
语法:属性名__运算符=临界值
gt 大于
lt 小于
gte 大于等于
lte 小于等于
exact() 精确内容查找,区分大小写
iexact() i表示ignore,即忽略大小写
contains() 内容包含 如Car.objects.filter(name__contains='奔')
startswith 以什么字符开始
endswith 以什么字符结束
istartswith 以什么字符开始,忽略大小写
isendswith 以什么字符结束,忽略大小写
icontains 包含什么字符,忽略大小写
in 包含值项 ,如Car.objects.filter(price__in=(30.58,26.65))
isnull 是null
isnotnull 非null
时间过滤: 属性名__时间__操作符=值
时间包含:year、month、day、hour、minute、second
'''
获取对象:
1) 集合对象 QuerySet
filter() 返回符合条件的数据
exclude() 过滤掉符合条件的数据
all() 返回所有数据
2) 单个对象
get() 要求条件对应的数据有且只有一个,如果没有找到符合条件的对象,会引发 模型类.DoesNotExist异常
如果找到多个,会引发 模型类.MultiObjectsReturned 异常
last() 返回查询集中的最后一个对象
first() 返回查询集中的第一个对象
3)其他方法
count() 返回当前查询集中的对象个数
exists() 判断查询集中是否有数据,如果有数据返回True没有反之
values() 一条数据就是一个字典,返回一个列表
order_by() 排序,如果字符串不包含'-'号,则表示从小到大排序,如果参数字符串包含'-'号,则表示从大到小排序
级联查询:类名.objects.filter(级联类名小写__属性=值)