query_set惰性机制
query_set不会触发sql语句,不用,不取
def orm(req):
obj_set = models.Book.objects.filter(id=1)
for i in obj_set: # 会走一次数据库,会把数据扔到缓存里
print(i.title)
return HttpResponse('OK')
if obj_set.exists(): # 会走一次数据库,不会把数据扔到缓存里
print('kkk')
obj = obj_set[0] # 切片也会操作数据库
上图第一次for循环时,django查询了数据库,然后把结果存在了缓存里.