Django QuerySet
Django QuerySet
QuerySet 是資料庫中的資料集合。
QuerySet 是由物件列表組成的。
QuerySets 透過允許您在早期階段過濾和排序資料,使得獲取您實際需要的資料變得更容易。
在本教程中,我們將從 Member
表中查詢資料。
成員
:
id | 名字 | 姓氏 | 電話 | 加入日期 |
---|---|---|---|---|
1 | 埃米爾 | 雷夫斯內斯 | 5551234 | 2022-01-05 |
2 | 托比亞斯 | 雷夫斯內斯 | 5557777 | 2022-04-01 |
3 | 萊納斯 | 雷夫斯內斯 | 5554321 | 2021-12-24 |
4 | 萊娜 | 雷夫斯內斯 | 5551234 | 2021-05-01 |
5 | 斯塔利肯 | 雷夫斯內斯 | 5559876 | 2022-09-29 |
查詢資料
在 views.py
中,我們有一個名為 testing
的檢視,我們將在其中測試不同的查詢。
在下面的示例中,我們使用 .all()
方法來獲取 Member
模型的所有記錄和欄位。
檢視
views.py
:
from django.http import HttpResponse
from django.template import loader
from .models import Member
def testing(request):
mydata = Member.objects.all()
template = loader.get_template('template.html')
context = {
'mymembers': mydata,
}
return HttpResponse(template.render(context, request))
該物件被放置在一個名為 mydata
的變數中,並透過 context
物件作為 mymembers
傳送到模板,其內容如下:
<QuerySet [
<Member: Member object (1)>,
<Member: Member object (2)>,
<Member: Member object (3)>,
<Member: Member object (4)>,
<Member: Member object (5)>
]>
如您所見,我們的 Member
模型包含 5 條記錄,它們作為 5 個物件列在 QuerySet 中。
在模板中,您可以使用 mymembers
物件來生成內容。
模板
templates/template.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>
執行示例 »