欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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("查询平均价成功")