Flask入门教程
是有些无关 紧要的文件不需要记录变化,我们在项目根目录创建一个 .gitignore 文件,在文件 中写入忽略文件的规则。因为文件内容比较简单,我们直接在命令使用 nano 来创 建: $ nano .gitignore 在 nano 编辑界面写入常见的可忽略文件规则: *.pyc *~ __pycache__ .DS_Store 使用 Control + O 和 Enter 键保存,然后按下 ' 填入 app.route() 装饰器的第一个参数是 URL 规则字符串,这里的 / 指的是 根地址。 我们只需要写出相对地址,主机地址、端口号等都不需要写出。所以说,这里的 / 对应的是主机名后面的路径部分,完整 URL 就是 http://localhost:5000/。如果 我们这里定义的 URL 规则是 /hello ,那么完整 URL 就是 http://localhost:5000/hello lo 。 整个请求的处理过程如下所示: 1. 当用户在浏览器地址栏访问这个地址,在这里即 http://localhost:5000/ 2. 服务器解析请求,发现请求 URL 匹配的 URL 规则是 / ,因此调用对应的处 理函数 hello() 3. 获取 hello() 函数的返回值,处理后返回给客户端(浏览器) 4. 浏览器接受响应,将其显示在窗口上 第 2 章:Hello0 码力 | 127 页 | 7.62 MB | 1 年前3Hello 算法 1.0.0b1 Python版
表格,其中每个单元格都可以存储 1 byte 的数据,在算法运 行时,所有数据都被存储在这些单元格中。 系统通过「内存地址 Memory Location」来访问目标内存位置的数据。计算机根据特定规则给表格中每个 单元格编号,保证每块内存空间都有独立的内存地址。自此,程序便通过这些地址,访问内存中的数据。 Figure 3‑2. 内存条、内存空间、内存地址 内存资源是设计数据结构与算法的重 ) 添加元素 ?(?) ?(1) 删除元素 ?(?) ?(1) 55 5. 栈与队列 5.1. 栈 「栈 Stack」是一种遵循「先入后出 first in, last out」数据操作规则的线性数据结构。我们可以将栈类比为放 在桌面上的一摞盘子,如果需要拿出底部的盘子,则需要先将上面的盘子依次取出。 “盘子”是一种形象比喻,我们将盘子替换为任意一种元素(例如整数、字符、对象等),就得到了栈数据结 得到了栈数据结 构。 我们将这一摞元素的顶部称为「栈顶」,将底部称为「栈底」,将把元素添加到栈顶的操作称为「入栈」,将删除 栈顶元素的操作称为「出栈」。 Figure 5‑1. 栈的先入后出规则 5.1.1. 栈常用操作 栈的常用操作见下表(方法命名以 Java 为例)。 方法 描述 时间复杂度 push() 元素入栈(添加至栈顶) ?(1) pop() 栈顶元素出栈 ?(1)0 码力 | 178 页 | 14.67 MB | 1 年前3Hello 算法 1.0.0b2 Python版
表格,其中每个单元格都可以存储 1 byte 的数据,在算法运 行时,所有数据都被存储在这些单元格中。 系统通过「内存地址 Memory Location」来访问目标内存位置的数据。计算机根据特定规则给表格中每个 单元格编号,保证每块内存空间都有独立的内存地址。自此,程序便通过这些地址,访问内存中的数据。 Figure 3‑2. 内存条、内存空间、内存地址 内存资源是设计数据结构与算法的重 ) 添加元素 ?(?) ?(1) 删除元素 ?(?) ?(1) 55 5. 栈与队列 5.1. 栈 「栈 Stack」是一种遵循「先入后出 first in, last out」数据操作规则的线性数据结构。我们可以将栈类比为放 在桌面上的一摞盘子,如果需要拿出底部的盘子,则需要先将上面的盘子依次取出。 “盘子”是一种形象比喻,我们将盘子替换为任意一种元素(例如整数、字符、对象等),就得到了栈数据结 得到了栈数据结 构。 我们将这一摞元素的顶部称为「栈顶」,将底部称为「栈底」,将把元素添加到栈顶的操作称为「入栈」,将删除 栈顶元素的操作称为「出栈」。 Figure 5‑1. 栈的先入后出规则 5.1.1. 栈常用操作 栈的常用操作见下表,方法名需根据编程语言来确定,此处我们以常见的 push , pop , peek 为例。 方法 描述 时间复杂度 push() 元素入栈(添加至栈顶)0 码力 | 186 页 | 15.69 MB | 1 年前3Hello 算法 1.0.0b4 Python版
表格,其中每个单元格都可以存储 1 byte 的数据,在 算法运行时,所有数据都被存储在这些单元格中。 系统通过「内存地址 Memory Location」来访问目标内存位置的数据。计算机根据特定规则为表格中的每 个单元格分配编号,确保每个内存空间都有唯一的内存地址。有了这些地址,程序便可以访问内存中的数 据。 Figure 3‑2. 内存条、内存空间、内存地址 内存是所有程序的共享资源 来表示一个字符,根据字符的复杂性而变。ASCII 字符只需要 1 个字节,拉丁字母和希腊字母需要 2 个字节, 常用的中文字符需要 3 个字节,其他的一些生僻字符需要 4 个字节。 UTF‑8 的编码规则并不复杂,分为两种情况: ‧ 对于长度为 1 字节的字符,将最高位设置为 0 、其余 7 位设置为 Unicode 码点。值得注意的是,ASCII 字符在 Unicode 字符集中占据了前 128 ? 位设置为 1 比较容易理解,可以向系统指出字符的 长度为 ? 。那么,为什么要将其余所有字节的高 2 位都设置为 10 呢?实际上,这个 10 能够起到校验符的作 用,因为在 UTF‑8 编码规则下,不可能有字符的最高两位是 10 。这是因为长度为 1 字节的字符的最高一位 是 0 。假设系统从一个错误的字节开始解析文本,字节头部的 10 能够帮助系统快速的判断出异常。 Figure 3‑80 码力 | 329 页 | 27.34 MB | 1 年前3Hello 算法 1.0.0b5 Python版
一块内存空间。我们可以将内存想象成一个巨大的 Excel 表格,其中每个单元格都可以存储一定大小的数据, 在算法运行时,所有数据都被存储在这些单元格中。 系统通过内存地址来访问目标位置的数据。如图 3‑2 所示,计算机根据特定规则为表格中的每个单元格分配 编号,确保每个内存空间都有唯一的内存地址。有了这些地址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 内存是所有程序的共享资源,当某块内存被某 来表示一个字符,根据字符的复杂性而变。ASCII 字符只需要 1 个字节,拉丁字母和希腊字母需要 2 个字节, 常用的中文字符需要 3 个字节,其他的一些生僻字符需要 4 个字节。 UTF‑8 的编码规则并不复杂,分为以下两种情况。 ‧ 对于长度为 1 字节的字符,将最高位设置为 0、其余 7 位设置为 Unicode 码点。值得注意的是,ASCII 字符在 Unicode 字符集中占据了前 128 10 呢?实际上,这个 10 能够起到校验符的作用。假设系统从 一个错误的字节开始解析文本,字节头部的 10 能够帮助系统快速的判断出异常。 之所以将 10 当作校验符,是因为在 UTF‑8 编码规则下,不可能有字符的最高两位是 10 。这个结论可以用 反证法来证明:假设一个字符的最高两位是 10 ,说明该字符的长度为 1 ,对应 ASCII 码。而 ASCII 码的最 高位应该是 0 ,与假设矛盾。0 码力 | 361 页 | 30.64 MB | 1 年前3Hello 算法 1.0.0 Python版
Excel 表格,其中每个单元格都可以存储一定大 小的数据。 第 3 章 数据结构 hello‑algo.com 51 系统通过内存地址来访问目标位置的数据。如图 3‑2 所示,计算机根据特定规则为表格中的每个单元格分配 编号,确保每个内存空间都有唯一的内存地址。有了这些地址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 � 值得说明的是,将内存比作 Excel 字符只需 1 字节,拉丁字母和希腊字母需要 2 字节,常用 第 3 章 数据结构 hello‑algo.com 60 的中文字符需要 3 字节,其他的一些生僻字符需要 4 字节。 UTF‑8 的编码规则并不复杂,分为以下两种情况。 ‧ 对于长度为 1 字节的字符,将最高位设置为 0 ,其余 7 位设置为 Unicode 码点。值得注意的是,ASCII 字符在 Unicode 字符集中占据了前 128 10 呢?实际上,这个 10 能够起到校验符的作用。假设系统从 一个错误的字节开始解析文本,字节头部的 10 能够帮助系统快速判断出异常。 之所以将 10 当作校验符,是因为在 UTF‑8 编码规则下,不可能有字符的最高两位是 10 。这个结论可以用 反证法来证明:假设一个字符的最高两位是 10 ,说明该字符的长度为 1 ,对应 ASCII 码。而 ASCII 码的最 高位应该是 0 ,与假设矛盾。0 码力 | 362 页 | 17.54 MB | 1 年前3Python 标准库参考指南 3.8.20
个 类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对于混合操作数类型,适 用双目算术运算符的规则。对于整数,结果和 (a // b, a % b) 一致。对于浮点数,结果是 (q, a % b) ,q 通常是 math.floor(a / b) 但可能会比 1 小。在任何情况下,q * b + exp) % mod 更高效)。两参数形式 pow(base, exp) 等价于乘方运算符: base**exp。 参数必须具有数值类型。对于混用的操作数类型,则将应用双目算术运算符的类型强制转换规则。对 于int 操作数,结果具有与操作数相同的类型(强制转换后),除非第二个参数为负值;在这种情况下, 所有参数将被转换为浮点数并输出浮点数结果。例如,10**2 返回 100,但 10**-2 返回 2**61 - 1。 详细规则如下所述: • 如果 x = m / n 是一个非负的有理数且 n 不可被 P 整除,则定义 hash(x) 为 m * invmod(n, P) % P,其中 invmod(n, P) 是对 n 模 P 取反。 • 如果 x = m / n 是一个非负的有理数且 n 可被 P 整除(但 m 不能)则 n 不能对 P 降模,以上规则不 适用;在此情况下则定义 hash(x)0 码力 | 2052 页 | 9.74 MB | 9 月前3Python 标准库参考指南 3.8.20
是一个类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对于混合操作数类型, 适用双目算术运算符的规则。对于整数,结果和 (a // b, a % b) 一致。对于浮点数,结果是 (q, a % b) ,q 通常是 math.floor(a / b) 但可能会比 1 小。在任何情况下,q * b + exp) % mod 更高效)。两参数形式 pow(base, exp) 等价于乘方运算符: base**exp。 参数必须具有数值类型。对于混用的操作数类型,则将应用双目算术运算符的类型强制转换规则。 对于int 操作数,结果具有与操作数相同的类型(强制转换后),除非第二个参数为负值;在这种 情况下,所有参数将被转换为浮点数并输出浮点数结果。例如,10**2 返回 100,但 10**-2 返 implementation detail: 目前所用的质数设定,在 C long 为 32 位的机器上 P = 2**31 - 1 而 在 C long 为 64 位的机器上 P = 2**61 - 1。 详细规则如下所述: 32 Chapter 4. 内置类型 The Python Library Reference, 发布 3.8.20 • 如果 x = m / n 是一个非负的有理数且 n 不可被0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.8.20
是一个类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对于混合操作数类型, 适用双目算术运算符的规则。对于整数,结果和 (a // b, a % b) 一致。对于浮点数,结果是 (q, a % b) ,q 通常是 math.floor(a / b) 但可能会比 1 小。在任何情况下,q * b + exp) % mod 更高效)。两参数形式 pow(base, exp) 等价于乘方运算符: base**exp。 参数必须具有数值类型。对于混用的操作数类型,则将应用双目算术运算符的类型强制转换规则。 对于int 操作数,结果具有与操作数相同的类型(强制转换后),除非第二个参数为负值;在这种 情况下,所有参数将被转换为浮点数并输出浮点数结果。例如,10**2 返回 100,但 10**-2 返 implementation detail: 目前所用的质数设定,在 C long 为 32 位的机器上 P = 2**31 - 1 而 在 C long 为 64 位的机器上 P = 2**61 - 1。 详细规则如下所述: 32 Chapter 4. 内置类型 The Python Library Reference, 发布 3.8.20 • 如果 x = m / n 是一个非负的有理数且 n 不可被0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.9.20
signal --- 设置异步事件处理程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023 18.6.1 一般规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023 18.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1377 24.3.2 解析规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1378 24.3 个 类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对于混合操作数类型,适 用双目算术运算符的规则。对于整数,结果和 (a // b, a % b) 一致。对于浮点数,结果是 (q, a % b) ,q 通常是 math.floor(a / b) 但可能会比 1 小。在任何情况下,q * b +0 码力 | 2146 页 | 10.17 MB | 9 月前3
共 120 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12