Django QuerySet
Django クエリセット
クエリセットは、データベースからのデータコレクションです。
クエリセットは、オブジェクトのリストとして構築されます。
クエリセットを使用すると、早い段階でデータをフィルタリングして並べ替えることができるため、実際に必要なデータを簡単に取得できます。
このチュートリアルでは、Member
テーブル。
Member
:
ID | 性 | 名 | 電話 | 結合日 |
---|---|---|---|---|
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 |
クエリデータ
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
という変数に入れられ、mymembers
としてcontext
オブジェクトを経由してテンプレートに送られます。
<QuerySet [
<Member: Member object (1)>,
<Member: Member object (2)>,
<Member: Member object (3)>,
<Member: Member object (4)>,
<Member: Member object (5)>
]>
<Member: Member object (1)>,
<Member: Member object (2)>,
<Member: Member object (3)>,
<Member: Member object (4)>,
<Member: Member object (5)>
]>
ご覧のようにMember
モデルには 5 つのレコードが含まれ、クエリセット内に5つのオブジェクトとしてリストされています。
テンプレートでは、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>
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。