详解Django的 values_list() 函数:获取指定字段的列表

  • Post category:Python

values_list()是Django中ORM的一个函数,可以用来筛选模型中的数据并将其以tuple的形式返回。下面详细讲解values_list()函数的作用和使用方法。

作用

values_list()函数可以返回数据库中所有数据或筛选出的部分数据以tuple的形式返回。但是与values()函数不同的是,values_list()返回的结果是一个tuple的列表,而不是一个dict的列表。

使用方法

values_list()函数可以通过传入几个参数来筛选出需要的数据。具体参数如下:

  1. flat: 一个布尔值,表示返回结果是否降为一维。默认为False。
  2. named: 一个布尔值,表示是否返回NamedTuple对象。默认为False。
  3. fields: 一个字符串列表,表示需要返回的字段名称。默认为所有字段。

下面提供两个例子:

  1. 假设我们有一个Book模型,包含titleauthorpricepublish_date等字段,我们需要查询所有书籍的标题和作者。
books = Book.objects.all().values_list('title', 'author')
print(books)

结果为:

[('Book A', 'Author A'), ('Book B', 'Author B'), ('Book C', 'Author C'), ...]
  1. 在上面的例子中,我们得到了一个tuple的列表,如果我们只需要书籍的标题,我们可以设置flat=True来降维。
book_titles = Book.objects.all().values_list('title', flat=True)
print(book_titles)

结果为:

['Book A', 'Book B', 'Book C', ...]

以上就是values_list()函数的作用和用法,希望对你有所帮助。