码迷,mamicode.com
首页 > 其他好文 > 详细

Django组件-分页器

时间:2019-01-14 01:05:09      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:mod   1.0   补充   cut   app   import   length   res   ret   

# app01.models.py

from django.db import models


class Emp(models.Model):
    name = models.CharField(max_length=32)
    age = models.IntegerField()
    salary = models.DecimalField(max_digits=8, decimal_places=2)
    dep = models.CharField(max_length=32)
    province = models.CharField(max_length=32)


# app01.views.py

from django.shortcuts import render, HttpResponse
from app01.models import *
from django.db.models import Avg, Max, Min, Count


def query(request):
    # -------------------------单表 聚合与分组查询---------------------------

    # ------------------------->聚合 aggregate:返回值是一个字典,不再是queryset
    # 查询所有书籍的平均价格
    ret = Book.objects.all().aggregate(avg_price=Avg("price"), max_price=Max("price"))
    print(ret)  # {‘avg_price‘: 151.0, ‘max_price‘: Decimal(‘301.00‘)}

    ret = Book.objects.aggregate(Avg(‘price‘), Max(‘price‘), Min(‘price‘))
    print(ret)  # {‘price__avg‘: 151.0, ‘price__max‘: Decimal(‘301.00‘), ‘price__min‘: Decimal(‘12.99‘)}

    # ------------------------->分组查询 annotate ,返回值依然是queryset
    # 单表分组查询的ORM语法: 单表模型.objects.values("group by的字段").annotate(聚合函数("统计字段"))
    # 在单表分组下, 按着主键进行group by是没有任何意义的.

    # 查询每一个部门的名称以及员工的平均薪水
    # select dep,Avg(salary) from emp group by dep

    ret = Emp.objects.values("dep").annotate(avg_salary=Avg("salary"))
    print(ret)  # <QuerySet [{‘avg_salary‘: 5000.0, ‘dep‘: ‘保安部‘}, {‘avg_salary‘: 51000.0, ‘dep‘: ‘教学部‘}]>

    # 查询每一个省份的名称以及员工数
    ret = Emp.objects.values("province").annotate(c=Count("id"))
    print(ret)  # <QuerySet [{‘province‘: ‘山东省‘, ‘c‘: 2}, {‘province‘: ‘河北省‘, ‘c‘: 1}]>

    # 补充知识点:
    # ret=Emp.objects.all()
    # print(ret)  # select * from emp
    # ret=Emp.objects.values("name")
    # print(ret)  # select name from emp

    return HttpResponse(‘OK‘)

  

Django组件-分页器

标签:mod   1.0   补充   cut   app   import   length   res   ret   

原文地址:https://www.cnblogs.com/bubu99/p/10264904.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!