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 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)>
]>
如您所见,我们的成员模型包含 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 |