Django 查询集


Django 查询集

QuerySet 是数据库中数据的集合。

查询集被构建为对象列表。

QuerySets 允许您在早期阶段对数据进行过滤和排序,从而使您可以更轻松地获取实际需要的数据。

在本教程中,我们将从以下位置查询数据Member表格。

Member:

 id   firstname   lastname   phone   joined_date 
 1   Emil   Refsnes   5551234   2022-01-05 
 2   Tobias   Refsnes   5557777   2022-04-01 
 3   Linus   Refsnes   5554321   2021-12-24 
 4   Lene   Refsnes   5551234   2021-05-01 
 5   Stalikken   Refsnes   5559876   2022-09-29 


查询数据

views.py,我们有一个测试视图,称为testing我们将在其中测试不同的查询。

在下面的例子中我们使用.all()方法获取所有记录和字段Member模型:

看法

views.py:

from django.http import HttpResponse
from django.template import loader
from .models import Member

def testing(request):
  mydata = Member.objects.all()
  template = loader.get_template('template.html')
  context = {
    'mymembers': mydata,
  }
  return HttpResponse(template.render(context, request))

该对象被放置在一个名为的变量中mydata,并通过以下方式发送到模板context对象为mymembers,看起来像这样:

<QuerySet [
  <Member: Member object (1)>,
  <Member: Member object (2)>,
  <Member: Member object (3)>,
  <Member: Member object (4)>,
  <Member: Member object (5)>
]>

如您所见,我们的Member模型包含 5 条记录,并在 QuerySet 中作为 5 个对象列出。

在模板中您可以使用mymembers生成内容的对象:

模板

templates/template.html:

<table border='1'>
  <tr>
    <th>ID</th>
    <th>Firstname</th>
    <th>Lastname</th>
  </tr>
  {% for x in mymembers %}
    <tr>
      <td>{{ x.id }}</td>
        <td>{{ x.firstname }}</td>
      <td>{{ x.lastname }}</td>
    </tr>
  {% endfor %}
</table>
运行示例 »