1 分组查询 # 分组查询 # 查询每一个出版社id,以及图书平均价格(单表) # 原生sql # select publish_id,avg(price) from app01_book group by publish_id; # orm 实现 """标准 annotate() 内写聚合函数 QuerySet对象的方法 values在前,表示group by 的字段 values在后,表示取字段 filter在前,表示where条件 filter在后,表示having 分…
部署图书管理项目需要以下软件 项目文件(django项目文件夹) 数据库文件(django项目对应的数据库文件) centos7(linux本体) nginx(反向代理以及静态文件收集) uWSGI(代理服务器与后端的application应用服务器之间的中间件) virtualenv(虚拟环境) supervisor(自动守护) 1.项目部署 1.1 项目文件上传 上传图书管理系统项目到linux服务器上 Lrzsz工具进行上传 xftp工具进行上传(推荐方式) scp命令 在/opt/目录下…
目录 Django写图书管理系统 功能截图 创建Django项目 开始项目 配置文件 建立路由关系 开始写Django项目 编写核心逻辑函数 写前端页面 add_author.html add_book.html add_publisher.html author_list.html book_list.html edit_author.html edit_book.html edit_publisher.html login.html publisher_list.html register.…
首先回顾sql中聚合和分组的概念: 如果没有分组,会把整张表作为一个大组,查询字段必须是聚合结果:如果有分组,分组之后,必须要使用聚合的结果作为having的条件. 聚合查询 聚合:aggregate(*args, **kwargs) 规则: 1.可以同时对多个字段进行聚合处理: 2.是QuerySet对象方法: 3.方法返回值为字典类型 aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典.键的名称是聚合值的标识符,值是计算出来的聚合值.键的名称是…
数据库查询优化 优化:虽然减轻了数据库的压力,但查询速度大大的减慢 ORM内所有的语句操作,默认都是惰性查询,只有你在真正的需要数据的时候才会走数据, 如果你只是写ORM语句时,是不会走数据库的,这样的原理设计,主要是在于减轻数据库的压力. 例如: 查询优化的关键字方法:select_related.only.prefentch_related.defer Django数据库优化操作之only方法 加only参数是从查询结果中只取某个字段,封装做成对象的形式,不再频繁的走数据库,从而减轻数据库的…
该图书管理系统要实现的功能如下: 1. 可以通过添加窗口添加书籍或作者,如果要添加的作者和书籍已存在于书架上, 则给出相应的提示: 2. 如果要添加的作者存在,而要添加的书籍书架上没有,则将该书籍添加到该作者栏: 3. 如果要添加的作者和书籍都不存在于书架上,则将书籍和作者一起添加: 4. 每个书籍和作者旁边都有一个删除按钮,点击删除书籍的按钮可以将该书籍删除,若某作者栏的书籍全部删除完毕则显示"无": 5. 若直接点击删除作者按钮,则可以将该作者和其书籍一起全部删掉. 该系统的实现工…
单表查询: models.py: from django.db import models class Employee(models.Model): name = models.CharField(max_length=16) age = models.IntegerField() salary = models.IntegerField() province = models.CharField(max_length=32) dept = models.CharField(max_lengt…
目录 Django django-admin 和 项目manage.py程序 它俩是什么? 命令程序用法 常用命令 Django django-admin 和 项目manage.py程序 它俩是什么? django-admin 是django的命令行工具,用于管理任务. manage.py 是通过django-admin创建项目时为每一个项目创建的管理程序.它和django-admin做相同的工作.除了一些不一样的,需要我们注意:         1. manage.py 会将它所管理的项目的p…
一.创建项目和应用 ​ 在Pycharm中用Django模板创建一个工程文件 创建项目 python manage.py startproject 项目名 . 创建应用 python manage.py startapp 应用名 二.配置项目名中的settings文件 #1.添加应用 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.co…
实战经历,由于本人在共享单车上班,我们的单车管理模块,可以根据单车号查询单车,但是单车号没有设置unique(独一无二约束),说以这就增加了单车号可能重复的风险,但是一般情况下,单车号是不会重复的,因为平台的单车都是人工录入的,但是二般情况下,就会出现,一旦出现,那么就shit了,很不幸,今天就出现了这个问题,“一个单车号,可以在单车管理模块查出来有两条记录”这个时候,我们就必须把出现这种问题的单车号,再次手动编辑改变,由于数据库里,单车管理表里有成千上万个单车,但是,都有哪一个单车号出现了两次…