Django QuerySet 获取数据
获取数据
有多种方法可以将数据从模型中获取到 QuerySet。
values() 方法
values()
方法允许您将每个对象作为 Python 字典返回,并将名称和值作为键/值对:
View
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'}
]>
您将在下一章中了解有关filter()
方法的更多信息。