Django中ORM的查询

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("查询平均价成功")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值