Django 惰性机制
程序员文章站
2022-11-03 19:36:31
惰性机制:Publisher.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它并不会马上执行sql,而是当调用QuerySet的时候才执行sql,为了测试,我们加上 sql 日志。 在 settings.py 文件上修改 在 views.py ......
惰性机制:publisher.objects.all()或者.filter()等都只是返回了一个queryset(查询结果集对象),它并不会马上执行sql,而是当调用queryset的时候才执行sql,为了测试,我们加上 sql 日志。
在 settings.py 文件上修改
# 在最后添加 logging = { 'version': 1, 'disable_existing_loggers': false, 'handlers': { 'console':{ 'level':'debug', 'class':'logging.streamhandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console'], 'propagate': true, 'level':'debug', }, } }
在 views.py 上修改
from django.shortcuts import render, httpresponse from app01 import models from app01.models import book,author,publisher # create your views here. def data_oper(req): obj_set = models.book.objects.filter(id=2) return httpresponse("hello world")
浏览器访问 结果显示 sql 语句没有执行
调用 queryset ,在 views.py 上修改
rom django.shortcuts import render, httpresponse from app01 import models from app01.models import book,author,publisher # create your views here. def data_oper(req): obj_set = models.book.objects.filter(id=2) for obj in obj_set: print(obj.title) return httpresponse("hello world")
浏览器访问 结果显示 sql 语句已执行