首页 > 编程语言 >巨蟒python全栈开发django9:一些知识点的汇总

巨蟒python全栈开发django9:一些知识点的汇总

时间:2022-11-14 12:37:16浏览次数:48  
标签:知识点 django9 结果 python py dep html emp id

回顾上周内容:

题目:

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

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

 

1.聚合查询(aggregate)

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

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

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap

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

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_02

运行指令:

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_03

巨蟒python全栈开发django9:一些知识点的汇总_数据_04

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

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

巨蟒python全栈开发django9:一些知识点的汇总_数据_05

 

 设置默认值为10

执行指令:

巨蟒python全栈开发django9:一些知识点的汇总_html_06

巨蟒python全栈开发django9:一些知识点的汇总_数据_07

 

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

巨蟒python全栈开发django9:一些知识点的汇总_html_08

修改价格

巨蟒python全栈开发django9:一些知识点的汇总_数据_09

查询价格最高的那本书

 

巨蟒python全栈开发django9:一些知识点的汇总_数据_10

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_11

写完命令,点击查询

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

首先,引入聚合函数

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_12

巨蟒python全栈开发django9:一些知识点的汇总_数据_13

 

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

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_14

运行,得到如下结果:

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_15

现在我们再起别名

 

巨蟒python全栈开发django9:一些知识点的汇总_数据_16

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

得到如下结果:

巨蟒python全栈开发django9:一些知识点的汇总_数据_17

查一下书籍的总数

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_18

 

 得到的是4条数据

巨蟒python全栈开发django9:一些知识点的汇总_数据_19

利用filter和all进行筛选

巨蟒python全栈开发django9:一些知识点的汇总_数据_20

巨蟒python全栈开发django9:一些知识点的汇总_html_21

如上图,以publish_id分组即可

巨蟒python全栈开发django9:一些知识点的汇总_数据_22

 

得到如上结果:

巨蟒python全栈开发django9:一些知识点的汇总_html_23

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

巨蟒python全栈开发django9:一些知识点的汇总_html_24

 连接字段

巨蟒python全栈开发django9:一些知识点的汇总_html_25

巨蟒python全栈开发django9:一些知识点的汇总_html_26

分组通过publish的名字

起别名:

巨蟒python全栈开发django9:一些知识点的汇总_html_27

 

 

2.分组查询

巨蟒python全栈开发django9:一些知识点的汇总_数据_28

巨蟒python全栈开发django9:一些知识点的汇总_数据_29

 

 

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_30

 

 

 

 

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_31

 

得到结果:

巨蟒python全栈开发django9:一些知识点的汇总_数据_32

 

巨蟒python全栈开发django9:一些知识点的汇总_html_33

得到结果:

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_34

巨蟒python全栈开发django9:一些知识点的汇总_数据_35

以and关系进行分组

结果:

巨蟒python全栈开发django9:一些知识点的汇总_数据_36

分组之后,再统计结果

巨蟒python全栈开发django9:一些知识点的汇总_数据_37

 

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

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

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_38

 

 执行,得到结果:

巨蟒python全栈开发django9:一些知识点的汇总_数据_39

 

 

巨蟒python全栈开发django9:一些知识点的汇总_数据_40

 

巨蟒python全栈开发django9:一些知识点的汇总_数据_41

 

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_42

 

 

 

巨蟒python全栈开发django9:一些知识点的汇总_数据_43

 

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_44

 

巨蟒python全栈开发django9:一些知识点的汇总_html_45

巨蟒python全栈开发django9:一些知识点的汇总_数据_46

 

先联表再进行分组

巨蟒python全栈开发django9:一些知识点的汇总_html_47

 

ORM执行原生sql语句

 

 

巨蟒python全栈开发django9:一些知识点的汇总_html_48

巨蟒python全栈开发django9:一些知识点的汇总_数据_49

 

巨蟒python全栈开发django9:一些知识点的汇总_html_50

直接拿取数据

 

巨蟒python全栈开发django9:一些知识点的汇总_数据_51

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

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_52

 

 

3.F&&Q查询

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

巨蟒python全栈开发django9:一些知识点的汇总_数据_53

 

执行,两条命令:

makemigrations

migrate

 

巨蟒python全栈开发django9:一些知识点的汇总_html_54

得到如下表

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_55

添加数据得到如下所示:

巨蟒python全栈开发django9:一些知识点的汇总_数据_56

 

 F&&Q

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

巨蟒python全栈开发django9:一些知识点的汇总_数据_57

巨蟒python全栈开发django9:一些知识点的汇总_数据_58

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_59

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

 可以对F进行处理

巨蟒python全栈开发django9:一些知识点的汇总_html_60

更新,自增12

巨蟒python全栈开发django9:一些知识点的汇总_数据_61

更新之后,

巨蟒python全栈开发django9:一些知识点的汇总_数据_62

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

巨蟒python全栈开发django9:一些知识点的汇总_数据_63

 

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_64

巨蟒python全栈开发django9:一些知识点的汇总_html_65

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

 

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

巨蟒python全栈开发django9:一些知识点的汇总_数据_66

且的话,我们再写在后边

巨蟒python全栈开发django9:一些知识点的汇总_数据_67

 

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_68

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

 

4.自定义标签过滤器

自定义过滤器

巨蟒python全栈开发django9:一些知识点的汇总_数据_69

 

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_70

 

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_71

运行:

巨蟒python全栈开发django9:一些知识点的汇总_html_72

下面是自定义标签:

 

巨蟒python全栈开发django9:一些知识点的汇总_数据_73

 

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

巨蟒python全栈开发django9:一些知识点的汇总_数据_74

 

巨蟒python全栈开发django9:一些知识点的汇总_数据_75

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

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

 

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_76

运行报错,之后的修改:

巨蟒python全栈开发django9:一些知识点的汇总_数据_77

巨蟒python全栈开发django9:一些知识点的汇总_数据_78

再次,运行,得到结果

巨蟒python全栈开发django9:一些知识点的汇总_数据_79

得到的结果如上图

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

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

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_80

 

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

 

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_81

巨蟒python全栈开发django9:一些知识点的汇总_html_82

巨蟒python全栈开发django9:一些知识点的汇总_数据_83

巨蟒python全栈开发django9:一些知识点的汇总_数据_84

运行,测试,得到结果:

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_85

 

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

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_86

 

inclusion_tag标签

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

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_87

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_88

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

 

巨蟒python全栈开发django9:一些知识点的汇总_数据_89

 

 

巨蟒python全栈开发django9:一些知识点的汇总_数据_90

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

 

巨蟒python全栈开发django9:一些知识点的汇总_html_91

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

巨蟒python全栈开发django9:一些知识点的汇总_html_92

 

 运行:得到的结果

巨蟒python全栈开发django9:一些知识点的汇总_数据_93

 

 

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_94

 

5.静态文件配置

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

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

巨蟒python全栈开发django9:一些知识点的汇总_数据_95

巨蟒python全栈开发django9:一些知识点的汇总_数据_96

 

 

巨蟒python全栈开发django9:一些知识点的汇总_数据_97

运行,得到结果:

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_98

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

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_99

运行,得到结果:

巨蟒python全栈开发django9:一些知识点的汇总_数据_100

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

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

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

巨蟒python全栈开发django9:一些知识点的汇总_html_101

配置settings.py文件

巨蟒python全栈开发django9:一些知识点的汇总_html_102

巨蟒python全栈开发django9:一些知识点的汇总_数据_103

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

巨蟒python全栈开发django9:一些知识点的汇总_数据_104

正确的写法

 

巨蟒python全栈开发django9:一些知识点的汇总_html_105

巨蟒python全栈开发django9:一些知识点的汇总_数据_106

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

巨蟒python全栈开发django9:一些知识点的汇总_html_107

如果别名修改成xxx,

巨蟒python全栈开发django9:一些知识点的汇总_html_108

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

巨蟒python全栈开发django9:一些知识点的汇总_数据_109

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

巨蟒python全栈开发django9:一些知识点的汇总_数据_110

 

 将别名改成"666"试一下

巨蟒python全栈开发django9:一些知识点的汇总_数据_111

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_112

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

巨蟒python全栈开发django9:一些知识点的汇总_数据_113

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

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

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_114

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

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

 

6.事务和锁

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

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

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

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

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

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

有很多概念.

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

查询的时候是共享锁

巨蟒python全栈开发django9:一些知识点的汇总_html_115

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

 

巨蟒python全栈开发django9:一些知识点的汇总_html_116

巨蟒python全栈开发django9:一些知识点的汇总_数据_117

上边的代码一直报错:

原因如下图:

 

巨蟒python全栈开发django9:一些知识点的汇总_html_118

 

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

 

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_119

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

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_120

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

 

复习:

巨蟒python全栈开发django9:一些知识点的汇总_数据_121

 

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

 

#按照部门分组查询名字和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补充

 

巨蟒python全栈开发django9:一些知识点的汇总_html_122

 

在test.html里边调用

巨蟒python全栈开发django9:一些知识点的汇总_html_123

 

 运行结果:

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_124

没有变成,修改如下标签

巨蟒python全栈开发django9:一些知识点的汇总_bootstrap_125

巨蟒python全栈开发django9:一些知识点的汇总_数据_126

这样就修改成功了

 



标签:知识点,django9,结果,python,py,dep,html,emp,id
From: https://blog.51cto.com/u_11182673/5848908

相关文章

  • 巨蟒python全栈开发django3:url&&视图
    1.url正则匹配分组和命名分组2.路由分发3.url别名和反向解析4.httprequest和httpresponse的使用 内容回顾:1.jinja2(flask框架,没有内置模板对象,需要自己用jinja2)......
  • 巨蟒python全栈开发django2:初识django
    今日内容大纲:1.起飞版web框架2.自定制框架的流程3.jinja2模板渲染初识4.MVC&&MTV5.django版本介绍及django安装6.django初识(一些操作) 今日详细内容:1.起飞版web框架2.自......
  • python 中 #-*-coding: UTF-8 -*-的作用
     #-*-coding:UTF-8-*-解决python2中中文乱码报错的问题001、[root@pc1test1]#lsa.fatest.py[root@pc1test1]#cata.fa##测试数据>chr1xxxaaaggg......
  • Python巨蟒全栈开发目录
    ​​巨蟒python全栈开发-第一阶段基础数据类型&基础​​​​1.什么是计算机&&python的简介(待补充)​​​​2.while循环&&格式化输出&&运算符号(待补充)​​​......
  • 巨蟒python全栈开发flask11项目开始3
    1.多玩具遥控&&websocket回锅2.绑定玩具时添加好友的最终逻辑3.消息&&好友列表4.chat聊天&&对话窗口 1.多玩具遥控&&websocket回锅app的4个隐藏需求: 回顾: 下面看一下上......
  • 巨蟒python全栈开发数据库前端8:jQuery框架2
    数据可视化推荐网站(都是JavaScript写的):​​echart网站:​​​​https://echarts.baidu.com/​​聚宽网站我们要多用心也是可以做前端的!!! 回顾:1.jquery介绍2.jq......
  • 巨蟒python全栈开发flask10 项目开始2
    1.websocket异常处理出现上图报错的原因是什么?原因是:websocket断开了,所以报错19行接收的msg是None值,所以报错.打开一个文件,点击发送音乐,出现上面的内容:客户端app发送......
  • 巨蟒python全栈开发-第11阶段 ansible_project1
    今日大纲:1.前端页面介绍2.发布流程3.需求分析4.表结构设计5.前端页面设计 昨日内容回顾:1.roles-tasks-handlers-files-templates-varsroles的操作顺序:roles的操作......
  • 巨蟒python全栈开发flask9 项目开始1
    1.项目需求分析立项:Javis&&taisen(三个月全部,先模拟出一个玩具,硬件需要周期长一些)想法---需求分析:1.通过玩具与孩子实时进行沟通2.希望玩具的知识渊博3.......
  • 巨蟒python全栈开发flask7 语音识别升级版&&mongoDB
    1.web简陋版玩具首先,复制上一节课的内容,将其中的语音文件删除掉,放入三个文件,然后,我们需要在app写入下面的内容下图是需要修改的地方:  Recorder_ok.js是一个web录音......