Django QuerySet 集合
Django QuerySet 集合
QuerySet 是数据库中数据的集合。
QuerySet 是作为对象列表构建的。
QuerySets 允许您对数据进行过滤和排序,从而更轻松地获取您实际需要的数据。
在本教程中,我们将从成员表中查询数据。
Members
:
id | firstname | lastname |
---|---|---|
1 | Emil | Refsnes |
2 | Tobias | Refsnes |
3 | Linus | Refsnes |
4 | Lene | Refsnes |
5 | Stalikken | Refsnes |
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 |