Django QuerySet 获取数据
获取数据
从模型中获取数据到查询集有不同的方法。
values() 方法
values() 方法让您可以将每个对象作为 Python 字典返回,包含名称和值作为键/值对:
视图
members/views.py:
from django.http import HttpResponsefrom django.template import loaderfrom .models import Membersdef testing(request):mydata = Members.objects.all().values()template = loader.get_template('testing_queries.html')context = {'mymembers': mydata,}return HttpResponse(template.render(context, request))
发送到模板的模型如下所示:
<QuerySet [{'id': 1, 'firstname': 'Emil', 'lastname': 'Refsnes'},{'id': 2, 'firstname': 'Tobias', 'lastname': 'Refsnes'},{'id': 3, 'firstname': 'Linus', 'lastname': 'Refsnes'},{'id': 4, 'firstname': 'Lene', 'lastname': 'Refsnes'},{'id': 5, 'firstname': 'Stalikken', 'lastname': 'Refsnes'}]>
返回指定列
values_list() 方法只允许返回指定的列。
视图
members/views.py:
from django.http import HttpResponsefrom django.template import loaderfrom .models import Membersdef testing(request):mydata = Members.objects.values_list('firstname')template = loader.get_template('testing_queries.html')context = {'mymembers': mydata,}return HttpResponse(template.render(context, request))
发送到模板的模型如下所示:
<QuerySet [('Emil',),('Tobias',),('Linus',),('Lene',),('Stalikken',),]>
返回指定行
使用 filter() 方法,您可以筛选搜索仅返回特定的行/记录。
视图
members/views.py:
from django.http import HttpResponsefrom django.template import loaderfrom .models import Membersdef testing(request):mydata = Members.objects.filter(firstname='Emil').values()template = loader.get_template('testing_queries.html')context = {'mymembers': mydata,}return HttpResponse(template.render(context, request))
发送到模板的模型如下所示:
<QuerySet [{'id': 1, 'firstname': 'Emil', 'lastname': 'Refsnes'}]>
在下一章中,您将学习到有关 next chapter 方法的更多知识。