回顾上周内容:

题目:

1.人民出版社出版过的所有书籍的名字以及作者的姓名(三种写法,笔记中有两种写法)

2.手机以2开头的作者出版过的所有书籍名称以及出版社名称(三种写法,笔记中有1种写法)

1.聚合查询(aggregate)

需求:查找所有书里边的最大价格的那本书

因为,书这张表中没有价格字段.我们需要添加一个这样的字段

同步数据库需要的指令,首先,找到,简化的指令

运行指令:

上边说明,需要设置一个默认值,所以,我们选择2,退出,在models.py里边添加默认值

这样就回到了,相关的界面

设置默认值为10

执行指令:

这时候,表里边就有一个,默认值为10的价格属性字段了

修改价格

查询价格最高的那本书

写完命令,点击查询

聚合就是上边最后得到的结果

首先,引入聚合函数

注意:这里报错的原因是max需要大写Max

运行,得到如下结果:

现在我们再起别名

,将别名进行了修改为,m_p

得到如下结果:

查一下书籍的总数

得到的是4条数据

利用filter和all进行筛选

如上图,以publish_id分组即可

得到如上结果:

出版社的名字是可以拿到的

连接字段

分组通过publish的名字

起别名:

2.分组查询

得到结果:

得到结果:

以and关系进行分组

结果:

分组之后,再统计结果

注意下面的book__id,指的是两个横杠

通过下面,我们知道尔康出了两本书

执行,得到结果:

先联表再进行分组

ORM执行原生sql语句

直接拿取数据

通过原生 的SQL,我们就得到了这样的结果

3.F&&Q查询

添加两个属性,点赞数和评论数

执行,两条命令:

makemigrations

migrate

得到如下表

添加数据得到如下所示:

F&&Q

注意,两个字段之间不能直接比较

集合为空,说明没有大于的

可以对F进行处理

更新,自增12

更新之后,

刷新之后,评论结果加上12

结果里边没有两个都大于1000的数据

Q通过管道符|实现"或者"的意思

且的话,我们再写在后边

注意一点:Q包裹的放在没有Q包裹的前面

4.自定义标签过滤器

自定义过滤器

运行:

下面是自定义标签:

如何运用到模板语言之中呢?(自定义过滤器)

需要处理的数据,函数,需要替换的参数,在下面的过滤函数中最多接收2个参数,而且这个过滤器和其他过滤器一样,

可以放到if判断,for循环等语句里面来使用

运行报错,之后的修改:

再次,运行,得到结果

得到的结果如上图

涉及到的文件夹(urls.py  test.html  views.py  templatetags/mytag.py)

过滤器也可以如下图,这样使用

下面是自定义标签:(下面的函数,可以传递任意个参数)

运行,测试,得到结果:

注意,这个函数,不可以写在渲染语句里边

inclusion_tag标签

文件:(result.html  mytag.py    views.py   test.html   result.html   urls.py )

return里边的data就是上边的html里边的data,前端接收后端的

以组件形式引入上边的标签的方式

在mytag.py里边的return里边的data通过以字典的形式,传递给result.html,进行渲染

运行:得到的结果

5.静态文件配置

一开始引入的是网络地址,bootstrap,如何添加到本地???

需要手动处理,为了防止bootstrap网上的崩溃了,需要写在本地

运行,得到结果:

现在,我们应用bootstrap样式,在jingtai.html文件里边

运行,得到结果:

万一哪一天,网上的bootstrap崩了,就需要有事情了,我们需要在本地处理

首先,在整个项目上创建jingtaiwenjian文件

将下载到本地的bootstrap,解压之后放到jingtaiwenjian里边

配置settings.py文件

运行:bootstrap并不起作用,这个和刚才的配置文件有关系

正确的写法

修改成的static,再次运行,就可以成功修改了.以别名的方式引入

如果别名修改成xxx,

引入的路径,也需要改成xxx

下面介绍一种,不需要改的,自动加载的方式:

将别名改成"666"试一下

如上图,依然可以得到上边的结果

我们将上边的结果,修改成statics,这是习惯性问题.

下面的settings.py也需要进行修改

在我们上边修改文件夹名字的时候,已经进行自动把这里的jingtaiwenjian修改成了statics

但是这里,羞不修改貌似,没有太大影响,已经测试过了.

6.事务和锁

锁:(遇到之后可以再读一下超哥的笔记)

锁,指的是,某些数据,在同一时间只能一个人用,尤其指的是数据库中的相关操作,

防止多人同时操作一条数据.

MYISAM支持的表级锁(锁住整个表),MYISAM又分为读锁和写锁是隔离的

INNODB支持的是行级锁(锁住一行)和表级锁

INNODB在更新和删除某条记录的时候是锁住的,其他人是不能查看的和写入

有很多概念.

更新和删除的时候,用的是表级锁

查询的时候是共享锁

事务的四大特性:原子性,持久性,唯一性,隔离性

上边的代码一直报错:

原因如下图:

运行:anyway.py,得到结果(报错)

我们再看一下,多了一条数据

运行成功,运行anyway.py出错的原因是因为属性不对应和publish表.

复习:

连表,分组,找数据(三步走)

#按照部门分组查询名字和id的数量
# select name,count(id) from emp group by dep;
# ret = models.Emp.objects.value('dep').annotate(c=Count('id'))
# print(ret)
#查询每一个部门以及对应的员工数
# select dep.name,count(emp.id) from dep inner join emp on dep.id=emp.dep_id
# group by dep.name,dep.id;
# models.Dep.objects.values('id','name').annotate(c=Count('emp__id'))
#查询每一个部门以及对应的员工数以及ID
# select dep.id,dep.name,count(emp.id) as c from dep inner join emp on dep.id=emp.dep_id
# group by dep.id,dep.name;
#
# models.Dep.objects.annotate(c=Count('emp__id')).values('name','c')
#
# select dep.name,count(emp.id) as c from dep inner join emp on dep.id=emp.dep_id group by dep.id;

mark_safe补充

在test.html里边调用

运行结果:

没有变成,修改如下标签

这样就修改成功了

巨蟒python全栈开发django9:一些知识点的汇总的更多相关文章

  1. 巨蟒python全栈开发linux之centos1

    1.linux服务器介绍 2.linux介绍 3.linux命令学习 linux默认有一个超级用户root,就是linux的皇帝 注意:我的用户名是s18,密码是centos 我们输入密码,点击解锁( ...

  2. 巨蟒python全栈开发-第20天 核能来袭-约束 异常处理 MD5 日志处理

    一.今日主要内容 1.类的约束(对下面人的代码进行限制;项目经理的必备技能,要想走的长远) (1)写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError(重点) (2)抽象 ...

  3. 巨蟒python全栈开发-第22天 内置常用模块1

    一.今日主要内容 1.简单了解模块 你写的每一个py文件都是一个模块 数据结构(队列,栈(重点)) 还有一些我们一直在使用的模块 buildins 内置模块.print,input random 主要 ...

  4. 巨蟒python全栈开发数据库前端6:事件onclick的两种绑定方式&&onblur和onfocus事件&&window.onload解释&&小米商城讲解

    1.回顾上节内容(JavaScript) 一.JavaScript概述 1.ECMAScript和JavaScript的关系 2.ECMAScript的历史 3.JavaScript是一门前后端都可以 ...

  5. 巨蟒python全栈开发linux之centos6

    1.nginx复习 .nginx是什么 nginx是支持反向代理,负载均衡,且可以实现web服务器的软件 在129服务器中查看,我们使用的是淘宝提供的tengine,也是一种nginx服务器 我们下载 ...

  6. 巨蟒python全栈开发linux之centos3

    1.作业讲解 (1)递归创建文件夹/tmp/oldboy/python/{alex,wusir,nvshen,xiaofeng} 下面中的路径没有必要换,在哪里创建都行,根目录下或者tmp目录下或者其 ...

  7. 巨蟒python全栈开发django5:组件&&CBV&FBV&&装饰器&&ORM增删改查

    内容回顾: 补充反向解析 Html:{% url ‘别名’ 参数 %} Views:reverse(‘别名’,args=(参数,)) 模板渲染 变量 {{ 变量名 }} 逻辑相关 {% %} 过滤器: ...

  8. 巨蟒python全栈开发-第11阶段 ansible_project2

    一个NB的网站: https://www.toolfk.com/ CDN:将用户的需求送到最近的节点:内容分发网络 有些是专门做CDN的工具 常用的markdown是需要知道的,短信有字数限制. we ...

  9. python全栈开发 * 23 面向对象 知识点汇总 * 180704

    23 面向对象 -----特殊方法 1. isinstance(obj,类名) 判断对象是否是此类实例化或者此类的子类实例化出来的class A:passclass B(A):passb1=B()pr ...

随机推荐

  1. Django——META内部类选项

    Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.以下对此作一总结: abstract      这个属性是定义当前的模型类是不是一个抽象类.所谓抽象类是不会对应 ...

  2. iOS 简单引导界面

    代码地址如下:http://www.demodashi.com/demo/11607.html 前言 现在很多APP在用户第一次用的时候,由于用户可能并不知道其中一些功能点的时候,这个时候就需要我们来 ...

  3. 神奇的canvas——巧用 canvas 为图片添加水印

    代码地址如下:http://www.demodashi.com/demo/11637.html 很久之前写过一篇关于 canvas 的文章,是通过 canvas 来实现一个绚丽的动画效果,不管看过没看 ...

  4. MySQL-配置优化技巧

    一.连接请求配置 1.查询当前连接数(show full processlist) show full processlist; 2.最大连接数(max_connections) max_connec ...

  5. 使用scp免passwordserver间传递文件

    1.aserver下执行命令  ssh-keygen -t rsa 2.三个回车 3.在用户的文件夹下 ~/.ssh/产生两个文件,id_rsa,id_rsa.pub 4.把aserver下相应的文件 ...

  6. 【Akka】在并发程序中使用Future

    引言 在Akka中, 一个Future是用来获取某个并发操作的结果的数据结构.这个操作一般是由Actor运行或由Dispatcher直接运行的. 这个结果能够以同步(堵塞)或异步(非堵塞)的方式訪问. ...

  7. memcached 命令行举例

    1.启动Memcache  常用参数
memcached 1.4.3 
 -p <num> 设置端口号(默认不设置为: 11211) 
 -U <num> UDP监听端口 (默 ...

  8. 淡入淡出效果模板 js

    html文件中: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> &l ...

  9. FastMethod和PropertyUtils两种反射方法的性能比较

    这两个类都提供反射方法的实现,性能对比如下: 循环条件是:1亿次 结论:PropertyUtils提供的getXXX和setXXX反射方法的性能是FastMethod的三倍 以下是测试方法: 首先是F ...

  10. SQL数据库规范

    三范式 参考网址: http://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html (1).第一范式(确保每列保持原子性) 每一列在某个 ...