Django QuerySet
Django QuerySet
QuerySet 是数据库中的数据集合。
QuerySet 是作为对象列表建立的。
QuerySet 让您可以对数据进行筛选和排序,从而使您更容易获得实际需要的数据。
在本教程中,我们将从 Members 表中查询数据。
Members:
| id | firstname | lastname |
|---|---|---|
| 1 | Emil | Refsnes |
| 2 | Tobias | Refsnes |
| 3 | Linus | Refsnes |
| 4 | Lene | Refsnes |
| 5 | Stalikken | Refsnes |
查询数据
在 views.py 中,我们有一个名为 testing 的测试视图,我们将在其中测试不同的查询。
在下面的实例中,我们使用 .all() 方法获取 Members 模型的所有记录和字段:
视图
members/views.py:
from django.http import HttpResponsefrom django.template import loaderfrom .models import Membersdef 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)>]>
如您所见,我们的成员模型包含 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 |