• ORM的惰性机制


    Django惰性机制

    所谓惰性机制:Publisher.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它并不会马上执行sql,而是当调用QuerySet的时候才执行。

    惰性机制之可迭代

    # objs=models.Book.objects.all() # [obj1,obj2,ob3...]
    # for obj in objs: # 每一obj就是一个行对象,此时会执行sql
    #     print("obj:",obj)
    惰性机制之可切片

    惰性机制之可切片

    # objs=models.Book.objects.all() # [obj1,obj2,ob3...]
    # print(objs[1])
    # print(objs[1:4])
    # print(objs[::-1])

    惰性机制之Django缓存问题

        Django有自己的缓存,如果2次的obj对象一致,第二次的查值直接从缓存中取值。

        如果期间数据库的内容作了更改,则需要重新查值。否则容易产生脏数据。

        可以直接利用第一次的obj对象直接进行update操作,这样下次for循环查询时又重新执行了数据库查询操作,此时缓存也作了更改; 也可以重新手动查询一下结果,但是不推荐这样,因为我们并不知道数据什么时候会进行修改,妥善的还是Django用数据时自己去查询数据结果

    注意: 如果2次操作之间有数据进行了修改 ,则需要重新从数据库中查值,否则Django会从缓存中取出数据,影响最后的查询结果。

     
  • 相关阅读:
    C# Use Pop3Client to read gmail
    在c#程式中配置log4net
    修改windows系統下xampp中apache端口被其他程式占用的問題
    关于知识总结的个人体验与见解
    html 元素水平居中方式
    JS setInterval 函数调用
    HTML特殊字符、列表、表格总结
    UISegmentedControl的详细使用
    IOS研究之iOS7适配的使用详细说明
    uibutton设置
  • 原文地址:https://www.cnblogs.com/Moodsfeelings/p/11817364.html
Copyright © 2020-2023  润新知