Django QuerySet 获取数据
获取数据
从模型中获取数据到查询集有不同的方法。
values() 方法
values()
方法让您可以将每个对象作为 Python 字典返回,包含名称和值作为键/值对:
视图
members/views.py:
from django.http import HttpResponse
from django.template import loader
from .models import Members
def 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 HttpResponse
from django.template import loader
from .models import Members
def 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 HttpResponse
from django.template import loader
from .models import Members
def 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 方法的更多知识。