Bộ truy vấn Django
Bộ truy vấn Django
QuerySet là tập hợp dữ liệu từ cơ sở dữ liệu.
Một QuerySet được xây dựng dưới dạng danh sách các đối tượng.
QuerySets giúp việc lấy dữ liệu bạn thực sự cần trở nên dễ dàng hơn bằng cách cho phép bạn lọc và sắp xếp dữ liệu ở giai đoạn đầu.
Trong hướng dẫn này, chúng ta sẽ truy vấn dữ liệu từ bảng Member
.
Member
:
id | firstname | lastname | phone | joined_date |
---|---|---|---|---|
1 | Emil | Refsnes | 5551234 | 2022-01-05 |
2 | Tobias | Refsnes | 5557777 | 2022-04-01 |
3 | Linus | Refsnes | 5554321 | 2021-12-24 |
4 | Lene | Refsnes | 5551234 | 2021-05-01 |
5 | Stalikken | Refsnes | 5559876 | 2022-09-29 |
Truy vấn dữ liệu
Trong views.py
, chúng tôi có một chế độ xem để kiểm tra được gọi là testing
nơi chúng tôi sẽ kiểm tra các truy vấn khác nhau.
Trong ví dụ bên dưới, chúng tôi sử dụng phương thức .all()
để lấy tất cả các bản ghi và trường của mô hình Member
:
Xem
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))
Đối tượng được đặt trong một biến có tên mydata
và được gửi đến mẫu thông qua đối tượng bối context
dưới dạng mymembers
và trông như thế này:
<QuerySet [
<Member: Member object (1)>,
<Member:
Member object (2)>,
<Member: Member object (3)>,
<Member: Member object (4)>,
<Member: Member object (5)>
]>
Như bạn có thể thấy, model Member
của chúng ta chứa 5 bản ghi và được liệt kê bên trong QuerySet dưới dạng 5 đối tượng.
Trong mẫu, bạn có thể sử dụng đối tượng mymembers
để tạo nội dung:
Bản mẫu
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>
Chạy ví dụ »