置顶「网络编程」Json Web Token(JWT)

### 一、身份认证 &emsp;常见的服务器端身份认证机制有两种,分别为:<br><p></p> #### 1.基于 session 的认证机制 &emsp;HTTP 是一种无状态的协议,这意味着若无登录态维持机制,则每次请求时都需要提交用户名与密码进行身份验证,而 session 机制就是用于在服务器端记录用户的登录状态。<br><p></p> &emsp;session 是一串在服………


置顶「Python」函数装饰器与闭包

&emsp; ### 一、函数装饰器 &emsp;装饰器是一个*可调用的对象*,其参数是被装饰的函数。装饰可能会处理被装饰的函数,或将其替换成另一个可调用对象,然后将其返回。 &emsp;*示例:* ```python @decorate def target(): print('running target()') # 相当于 def target(): print('running………


置顶「Django」基于类的视图

&emsp;对于视图层,除了可以用函数作为视图(`FBV`),还可以用类作为视图(`CBV`),即在类中定义方法对应http的各种请求方法。使用CBV可以使用类具有的一些特性,如继承、多态等。 - 所有类视图在映射到url时,都需调用视图的`as_view()`类方法。 ```python path("/index",views.MyView.as_view(),name="MyView") `………


「计算机网络」网络层与 IP 协议

&emsp;网络层位于传输层与链路层之间,网络层主要的协议有: - 网际协议 IP - 地址解析协议 ARP:解决物理地址跟网络 IP 地址转换问题 - 网际控制报文协议 ICMP:错误消息通知 - 网际组管理协议 IGMP:Internet 组管理 <br> ### 一、IPv4 协议主要特点 &emsp; IP 是 TCP/IP 协议体系中网络层的协议。其主………


「读书笔记」《程序员的自我修养:链接、装载与库》

## [第一部分] 简介 ### 1. 简介 #### 北桥南桥 &emsp;计算机中,三个最重要的部件为:中央处理器 CPU、内存、I/O 控制芯片。<br><p></p> &emsp;**北桥芯片**是为了协调 CPU、内存和高速图形设备间的频率,以便它们之间可以高速地交换数据。<br><p></p> &emsp;于此同时,由于北桥芯片的速度非常高,所有相对低速的设备若直接连接到北桥,北桥同………


「数据库」SQL 集合运算

### 一、表的加减法 &emsp;具体而言,表、视图和查询的执行结果都是记录的集合。通过集合运算,可以得到两张表中记录的并集或公共记录的集合。且通过集合运算,能够使得结果具有集合的一些特点(唯一性)。 #### 集合运算的注意事项 1. **作为运算对象的列数必须相同** 2. **作为运算对象的记录中列的类型必须一致**(若必须使用不同数据类型的列时,可以使用`CAST`函数) ………


「数据库」SQL 函数、谓词、CASE 表达式

### 一、函数 &emsp;SQL 中的函数可以分为以下几类: - 算数函数 - 字符串函数 - 日期函数 - 转换函数(用来转换数据类型与值) - 聚合函数(用来进行数据聚合) <br> #### 1. 算数函数 1. `ABS`:绝对值函数 ```java ABS(数值) ``` <br> 2. `MOD`:求余函数 ```java MO………


「数据库」SQL 复杂查询

### 一、视图 &emsp;视图是数据的映射。视图与表的区别在于,**视图保存的是`SELECT`语句,而没有保存实际的数据**,可以将视图看作原表的一张子表。我们从视图中读取数据时,视图会在内部执行该`SELECT`语句并创建出一张临时表。<br><p></p> &emsp;视图的优点有以下两点: - 视图无需保存数据,因此可以节省存储设备的容量; - 可以将频繁使用的`SELE………


「数据库」SQL 数据更新

### 一、INSERT 数据插入 &emsp;`INSERT`语句用于向数据库中插入记录。基本语法为: ```sql INSERT INTO <表名> (列1,列2,列3,...) VALUES (值1,值2,值3,...); ``` &emsp;其中将列名与值用逗号隔开,分别写在`()`内,这种形式称为**清单**。其中表名后面的清单称为列清单,`VALUES`关键字后面的清单称为值清单。<………


「数据库」SQL 基础查询

### 一、基本查询 &emsp;`SELECT`是所有 SQL 查询的基础。 #### 1. 基本的 SELECT 查询 ```sql SELECT <字段1>,<字段2>, ... FROM <表名>; ``` > 查询结果中列的顺序与`SELECT`子句中顺序相同 <p></p> &emsp;也可以使用通配符`*`输出所有的列信息: ```sql SELECT *………


「数据库」SQL 运算符与计算表达式

#### 一、算术运算符 加减乘除四则运算符 |运算符|含义| |--|--| |+|加法运算| |-|减法运算| |/|除法运算| <p></p> > `FROM`子句在`SELECT`语句中并不是必不可少的,只使用`SELECT`进行计算也是可以的: >```sql > select (100+200)*3 as calculation; >``` <br><br> #### 二、比………


「数据库」SQL 基础

### 基础知识 > **SQL语句种类**: 1. **DDL**(*Data Definition Language*):数据定义语言,用来创建或删除表或数据库。(`CREATE`、`DROP`、`ALTER`) > 2. **DML**(*Data Manipulation Language*):数据操纵语言,用来查询或变更表中的记录。(`SELECT`、`INSERT`、`UPDATE`………


「网络编程」跨域资源共享

### 跨域资源共享 CORS &emsp;全称跨域资源共享(Cross Origin Resource Sharing),是一个 W3C 的工作草案,定义了访问跨域资源时,浏览器与服务器的沟通方式。`CORS`同时需要浏览器与服务器的支持。<br><p></p> &emsp;整个跨域通信控制过程,都是由浏览器自动完成,无需用户参与。浏览器一旦发现请求跨域,在发送请求时会自动添加一些附加字段………


「算法设计与分析」最大流问题

### 一、定义 #### 1. 流网络 &emsp;**流网络** $$G=(V,E)$$ 是一个有向图,图中每边都有一个非负的 **容量值** $$c(u,v)\geq0$$,且图中不存在反向边。在网络的结点中有两个特殊的结点:**源点** $$s$$ 与**汇点** $$t$$。<br> <p></p> &emsp;而流的形式化定义如下:设 $$G=(V,E)$$ 为流网络,其 *………


「算法设计与分析」并查集求无向图的桥

### 一、问题描述 #### 1. 桥的定义 &emsp;在图论中,一条边被称为“桥”代表这条边一旦被删除,这张图的连通分量数量会增加。等价地说,一条边是一座桥当且仅当这条边不在任何环上。一张图可以有零或多座桥。<br> <center><img src="/media/blog_image/file_1592070233000.png" width="620px" style="margin………


「计算机系统」异质数据结构与数据对齐

&emsp;C语言提供了两种将不同数据结构组合到一起的创建数据类型的机制: - **结构(struct)**:将多个对象集合到一个单位中; - **联合(union)**:允许用多个不同的类型引用一个对象。 <br> #### 一、结构 ```cpp struct st{ int i; int a[2]; int *p; } ``` &emsp;类似于数组,………


「读书笔记」《Redis 设计与实现》

## [Part One] 数据结构与对象 <p style="margin-top:-23px">&emsp;</p> ### 一、简单动态字符串 &emsp;Redis 的默认字符串表示使用的是 SDS(simple dynamic string,简单动态字符串)的抽象类型。且 SDS 除了用来保存数据库中的字符串值外,还会被用作缓冲区(AOF缓冲区与客户端状态的输入缓冲区)。<br>………


「计算机网络」传输控制协议TCP

<br> &emsp;TCP 的特点: - **面向连接的传输服务** - **支持字节流传输**:<br> &nbsp;应用程序与 TCP 每次交互的数据长度可能都不相同,但 TCP 将应用程序提交的数据看作时一连串的、无结构的字节流,同时*在发送方与接收方都维护一个缓存*。发送方将几个写操作合并成一个报文段,提交给IP协议封装成IP分组后发送。接收方将接受的字节存储在接收缓存中,由应用程序………


「计算机网络」用户数据报协议UDP

&emsp;UDP 的特点: - **无连接、不可靠,运行快捷**: &nbsp;在传输报文之前不需要建立连接,因此减少了协议*开销*与*传输延时*。此外,除了对报文提供可选的校验和之外,几乎没有其他保证数据传输可靠性的措施,若 UDP 检测到差错分组,会直接将分组丢弃。 - **面向报文的传输层协议**: &nbsp;对应用程序提交的报文既不合并也不拆分,而是保留原报文的长度和格式………


「C++」拷贝控制

在定义一个类时,可以指定类的拷贝、移动、赋值或销毁时的动作,这些操作由5种成员函数来控制: 1. **拷贝构造函数** 2. **拷贝赋值运算符** 3. **移动构造函数** 4. **移动赋值运算符** 5. **析构函数** <br> &emsp;其中,拷贝和移动*构造函数* 定义了用同类型的对象初始化本对象时做什么,拷贝和移动*赋值运算符* 定义了将一个………