08 2021 档案
摘要:Django的ORM框架实现分组查询:通过QuerySet对象(或Manager对象)提供的values方法+annotate方法实现 表达式:主表模型类名.objects.values('查询字段名,一般使用id').annotate(聚合函数类名('从表模型类名小写')) 或 主表模型类名.ob
阅读全文
摘要:在对数据进行查询操作时,难免遇到需要会对数据进行聚合操作的情况,那么在ORM框架中是怎么实现聚合运算的呢? ==> 通过QuerySet对象(或Manager对象)提供的aggregate方法实现聚合,需要传递的参数为聚合函数类对象,即 QuerySet对象(或Manager对象).aggregat
阅读全文
摘要:前言:上篇文章中简单记录了Django通过ORM框架中的对象与数据库中的对象映射,即如何创建模型类、定义类属性、生成迁移脚本、执行迁移脚本生成数据表等操作。本篇文章会继续记录Django通过ORM框架操作数据库中的数据,即生成数据表之后对表中数据的操作:CRUD(创建、读取(查询)、更新、删除)。
阅读全文
摘要:思考:Django操作数据库中的数据(增删改查),都有哪些方式可以实现呢? 首先,肯定能想到的方式一:使用三方数据库操作模块,执行原生的sql语句对数据库进行操作,如pymysql模块,但此种方式势必存在以下问题: 1. sql语句一般比较复杂,并且维护困难 2. sql语句的安全性无法得到保障,可
阅读全文
摘要:一、函数视图 1、在子应用的views.py文件中定义 2、必须传递参数request 3、路由条目配置:路由与函数视图引用 映射 示例: def index(request): """ :param request: WSGI对象,自动传递 :return: HttpResponse对象 """
阅读全文
摘要:一、在Django函数视图中,request是一个必传参数,那么request参数到底是什么? 首先使用print函数打印一下request,可以看到request是一个WSGIRequest对象,然后使用__mro__来查看其继承关系,发现request实际上是HttpRequest对象 打断点调
阅读全文
摘要:一、Django子应用存在的意义是什么? 1、解耦: 2、复用: 二、如何创建子应用? 方式一:python manage.py startapp 子应用名 方式二:Tools -> Run manage.py Task... (仅适用于pycharm专业版) 三、如何使用子应用? 1、注册子应用
阅读全文
摘要:一、什么是虚拟环境? 通过软件虚拟出来的开发环境,不是真实存在的,一般在多套环境开发时会用到。 二、为什么要使用虚拟环境? 虚拟环境为不同的项目创建不同的开发环境,开发环境内所有使用的工具包互不影响。比如项目A需要使用Django 3.2.3,而项目B使用的则是Django 2.1,如果没有虚拟环境
阅读全文