目录
filter(属性 = ' ' ) 根据条件查询,返回一个集合对象
first() 和 last() ,查询第一个和最后一个记录, 返回单个对象
exists() 判断结果是否存在,存在返回true , 否则返回false
一,Django查询相关API
all() 查询所有记录,返回一个集合对象
def select(request):
book_list = Book.objects.all()
return render(request, 'index.html', {'book_list': book_list})
filter(属性 = ' ' ) 根据条件查询,返回一个集合对象
def select(request):
book_list = Book.objects.filter(name='go基础')
# book_list = Book.objects.all()
return render(request, 'index.html', {'book_list': book_list})
first() 和 last() ,查询第一个和最后一个记录, 返回单个对象
def select(request):
# book_list = Book.objects.filter(name='go基础')
# book_list = Book.objects.all()
# return render(request, 'index.html', {'book_list': book_list})
# book = Book.objects.first()
book = Book.objects.last()
return render(request, 'book.html', {'book': book})
get(id = 2),根据id查询, 返回一个对象
def select(request):
# book_list = Book.objects.filter(name='go基础')
# book_list = Book.objects.all()
# return render(request, 'index.html', {'book_list': book_list})
# book = Book.objects.first()
# book = Book.objects.last()
book = Book.objects.get(id=5)
return render(request, 'book.html', {'book': book})
filter(author='诸葛亮').values('name',...),返回作者为'诸葛亮'的多有书的 name 字典集合
def select(request):
# book_list = Book.objects.filter(name='go基础')
# book_list = Book.objects.all()
# return render(request, 'index.html', {'book_list': book_list})
# book = Book.objects.first()
# book = Book.objects.last()
# book = Book.objects.get(id=5)
# return render(request, 'book.html', {'book': book})
result_list = Book.objects.filter(author='诸葛亮').values('name')
return render(request, 'book_item.html', {'result_list': result_list})
filter(author='刘备').values_list('name'),返回元组集合。
exclude(author='刘备'),查询除'刘备'之外的所有记录.
def select(request):
# book_list = Book.objects.filter(name='go基础')
# book_list = Book.objects.all()
book_list = Book.objects.exclude(author='刘备')
return render(request, 'index.html', {'book_list': book_list})
order_by('price'),对价格进行排序
def select(request):
# book_list = Book.objects.filter(name='go基础')
# book_list = Book.objects.all()
# book_list = Book.objects.exclude(author='刘备')
book_list = Book.objects.all().order_by('price')
return render(request, 'index.html', {'book_list': book_list})
reverse() 对查询结果反向排序
distinct() 去重:如
Book.objects.all().values('name').distinct()
count() 查询对象总数
exists() 判断结果是否存在,存在返回true , 否则返回false
二,模糊查询
Book.objects.filter(price__gt=100).values('name', 'price') :价格大于100
Book.objects.filter(name__contains='b') :查询名称包含'p'的所有记录
....具体很多, 可查询官方文档。