• Django 惰性机制


    惰性机制:Publisher.Book.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
     
    def temp(requset):
     
    obj1 = models.Book.objects.filter(id=1)
     
    return HttpResponse("我是函数temp")

    浏览器访问 http://127.0.0.1:8080/temp 结果显示 sql 语句没有执行
    1334255-20190522155052823-27335043.png

    将函数进行一些修改

    在 views.py 上调用 obj1对象

    def temp(requset):
     
        obj1= models.Book.objects.filter(id=2)
        for obj in obj1:
            print(obj.title)
     
        return HttpResponse("我是temp函数")

    浏览器访问 http://127.0.0.1:8000/temp/ 结果显示 sql 语句已执行
    1334255-20190522155220380-540979688.png

  • 相关阅读:
    LINUX
    DOCKER
    计算牛的数目
    计算a^3=b^3+c^3+d^3
    用递归计算C(m,n)
    A Mathematical Curiosity
    Who is lier?
    我的第一篇 实习报告
    R.java
    天气系统
  • 原文地址:https://www.cnblogs.com/love2000/p/11788882.html
Copyright © 2020-2023  润新知