Django中ORM的查询
程序员文章站
2024-02-10 23:28:10
...
Django中ORM的查询
Django内置的ORM查询,以字段名__查询方式来进行查询,下方是实例代码
def query_orm(request):
# __exact精确查找,name是字段名,下面的写法就是name这个字段精确查找为西游记的数据
book = Book.objects.filter(name__exact='西游记')
print(book.query)
# 打印的结果,也就是转化成sql语句之后 SELECT `mysql_demo_book`.`id`, `mysql_demo_book`.`name`, `mysql_demo_book`.`author`, `mysql_demo_book`.`price`, `mysql_demo_book`.`type_id` FROM `mysql_demo_book` WHERE `mysql_demo_book`.`name` = 西游记
return HttpResponse("query_orm成功")
__contains 模糊匹配字符,包含即可,区分大小写
def query_orm(request):
books = Book.objects.filter(name__contains='aaa')
for book in books:
print(book)
# 打印及结果,name中包含aaa字符,区分大小写的结果
print(books.query)
return HttpResponse("query_orm成功")
__icontains 模糊匹配字符,包含即可,不区分大小写
def query_orm(request):
books = Book.objects.filter(name__icontains='aaa')
for book in books:
print(book)
# 打印及结果,name中包含aaa字符,不区分大小写的结果
print(books.query)
return HttpResponse("query_orm成功")
聚合函数的使用,所有的聚合函数都是在django.db.models下面,所以需要先引入
# 导入AVG的聚合函数进行价格平均值的计算
from django.db.models import Avg
# 聚合函数求价格的平均值
def price_avg(request):
# 注意,所有的聚合函数要放在模型的objects.aggregate中执行,
book = Book.objects.aggregate(Avg('price'))
print(book)
#{'price__avg': 233.25} 默认的情况下,返回的数据是一个字典,字典中的key的命名规则,是字段名__聚合函数名的方式
# 可以手动指定字典中的key,以关键字的方式传参即可
# book = Book.objects.aggregate(avg=Avg('price'))
# print(book)
# {'avg': 233.25}
return HttpResponse("查询平均价成功")