zoukankan      html  css  js  c++  java
  • ORM

    model一般都是有多个属性的,但是很多时候我们又只需要查询特定的某一个,这个时候可以用到valuesvalues_list

    利用values

    from attendence.models import Employee
    from attendence.models import EmployeeIP
    
    #获取一个字段
    ipList = EmployeeIP.objects.values("IP").first()
    print(type(ipList))
    # <class 'dict'>
    print(ipList)
    # {'IP': '192.168.1.41'}
    
    #获取多个字段
    empList = Employee.objects.values("first_name", "last_name", "email")[0:2]
    print(type(empList))
    # <class 'django.db.models.query.QuerySet'>
    print(empList)
    # [
    #   {'last_name': 'Wei', 'first_name': 'Vena', 'email': 'Vena@test.com'},
    #   {'last_name': 'Wan', 'first_name': 'Mark', 'email': 'mwan@test.com'}
    # ]
    

      

    利用values_list

    ipList = EmployeeIP.objects.values_list("IP").first()
    print(type(ipList))
    # <class 'tuple'>
    print(ipList)
    # ('192.168.1.111',)
    
    ipList = EmployeeIP.objects.values_list("IP")[0:2]
    print(type(ipList))
    # <class 'django.db.models.query.QuerySet'>
    print(ipList)
    # [('192.168.1.41',), ('192.168.1.44',)]
    print(type(ipList[0]))
    # <class 'tuple' >
    print(ipList[0])
    # 192.168.1.111
    

      

    values和values_list的差别

    从上面的代码中我们可以看到返回结果类型上细微的差别

    • vlaues -
      • 单条记录 - <class 'dict'>
      • 多条记录 - <class 'django.db.models.query.QuerySet'>
    • vlaues_list -
      • 单条记录 - <class 'tuple'>
      • 多条记录 - <class 'django.db.models.query.QuerySet'>
  • 相关阅读:
    Python学习(3)——if语句
    Python学习(2)——编码
    一次性邮箱
    Python学习(1)
    Hello World
    java设计模式创建篇------原型模式
    Java技巧------Cloneable接口与clone方法
    java设计模式创建篇------抽象工厂
    java设计模式创建篇------工厂模式
    python函数式编程
  • 原文地址:https://www.cnblogs.com/yspass/p/10081864.html
Copyright © 2011-2022 走看看