当前位置: 移动技术网 > IT编程>脚本编程>Python > Django 惰性机制

Django 惰性机制

2019年05月23日  | 移动技术网IT编程  | 我要评论

买药品最好的网站,最新美国电影,狂蟒之灾小说

惰性机制: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 语句已执行

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网