添加表记录
example1:
# 方式1:实例化 publish_obj=Publish(name="夕阳出版社",addr="夕阳路") publish_obj.save()
example2:
# 方式2:通过create方法
Publish.objects.create(name='蓝天出版社',addr='蓝天路79号')
# create方法的返回值为该插入记录的对象
example3:
# 批量导入数据: Booklist=[] for i in range(50): Booklist.append(Book(title=str(i)+"号图书",price=100)) Book.objects.bulk_create(Booklist)
查询表记录
all() | 查询所有记录 |
get(* * kwargs ) |
返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。 |
filter(* * kwargs ) |
返回与所给筛选条件相匹配的QuerySet对象 |
exclude( * * kwargs) |
返回与所给筛选条件不匹配的QuerySet对象 |
order_by( * field) |
返回一个排序后的QuerySet对象 |
reverse() |
返回一个反向排序后的QuerySet对象 |
count() |
返回数据库中匹配查询(QuerySet)的对象数量。 |
first() |
返回第一条记录 |
last() |
返回最后一条记录 |
exists() |
如果QuerySet包含数据,就返回 True ,否则返回 False |
distinct() |
从返回结果中剔除重复纪录 |
values( * field) |
返回一个ValueQuerySet,一个特殊的QuerySet,运行后得到的并不是一系列model的实例化对象,而是一个可迭代的字典序列 |
values_list( * field) |
它与values()非常相似,它返回的是一个元组序列 |
模糊查询
<字段>__in | 返回一个字段值在指定列表中的QuerySet对象 |
<字段>__gt | 返回一个字段值大于指定值的QuerySet对象 |
<字段>__lt | 返回一个字段值小于指定值的QuerySet对象 |
<字段>__range | 返回一个字段值在指定区间内的QuerySet对象 |
<字段>__contains | 返回一个字段值中含有指定值的QuerySet对象 |
<字段>__icontains | 同contains,但忽略大小写 |
<字段>__startswith | 返回一个字段值以指定值开头的QuerySet对象 |
<字段>__year |
返回一个year为指定值的QuerySet对象,这里的字段是
|
删除表记录
model_obj.delete()
删除对象,没有返回值
注意:
可以删除一个对象,也可以删除多个对象(QuerySet)
在删除对象时,若有关联的外键,会级联删除
若不想级联删除,可以在添加外键时,传入参数on_delete
=
models.SET_NULL
修改表记录
model_obj
.update(*
field
)
返回一个整型数值,表示受影响的记录数。