Django QuerySet 集合

Django QuerySet 集合

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

QuerySet 是作为对象列表构建的。

QuerySets 允许您对数据进行过滤和排序,从而更轻松地获取您实际需要的数据。

在本教程中,我们将从成员表中查询数据。

Members:

idfirstnamelastname
1EmilRefsnes
2TobiasRefsnes
3LinusRefsnes
4LeneRefsnes
5StalikkenRefsnes


Querying Data

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

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

View

members/views.py:

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

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

该对象被放置在一个名为mydata的变量中,并通过context对象作为mymembers发送到模板,如下所示:

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

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

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

模板

testing_queries.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>

结果

ID Firstname Lastname
1 Emil Refsnes
2 Tobias Refsnes
3 Linus Refsnes
4 Lene Refsnes
5 Stalikken Refsnes