Django QuerySet

Django QuerySet

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

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

QuerySet 让您可以对数据进行筛选和排序,从而使您更容易获得实际需要的数据。

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

Members:

idfirstnamelastname
1EmilRefsnes
2TobiasRefsnes
3LinusRefsnes
4LeneRefsnes
5StalikkenRefsnes

查询数据

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

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

视图

members/views.py:

  1. from django.http import HttpResponse
  2. from django.template import loader
  3. from .models import Members
  4. def testing(request):
  5. mydata = Members.objects.all()
  6. template = loader.get_template('testing_queries.html')
  7. context = {
  8. 'mymembers': mydata,
  9. }
  10. return HttpResponse(template.render(context, request))

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

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

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

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

模板

testing_queries.html:

  1. <table border='1'>
  2. <tr>
  3. <th>ID</th>
  4. <th>Firstname</th>
  5. <th>Lastname</th>
  6. </tr>
  7. {% for x in mymembers %}
  8. <tr>
  9. <td>{{ x.id }}</td>
  10. <td>{{ x.firstname }}</td>
  11. <td>{{ x.lastname }}</td>
  12. </tr>
  13. {% endfor %}
  14. </table>
结果
IDFirstnameLastname
1EmilRefsnes
2TobiasRefsnes
3LinusRefsnes
4LeneRefsnes
5StalikkenRefsnes