随笔分类 - Python全栈开发新版
摘要:【零】引入 多表查询的思路总共就两种 【1】子查询 就相当于是我们日常生活中解决问题的方式(一步步解决) 将一条SQL语句的查询结果加括号当做另外一条SQL语句的查询条件 eg:以昨天的员工表和部门表为例 查询jason所在的部门名称 子查询的步骤 先查dream所在的部门编号 根据部门编号去部门表
阅读全文
摘要:【一】查询语法 【1】语法 select */字段名 from 表名 where 筛选条件; 【2】执行顺序 from where select 【3】模版 虽然执行顺序和书写顺序不一致,但是可以按照书写顺序写SQL语句 # 先用 * 占位,再去补全完整的 SQL 语句 select * from
阅读全文
摘要:【一】什么是约束条件 约束条件:限制表中的数据,保证添加到数据表中的数据准确和可靠性!凡是不符合约束的数据,插入时就会失败! 约束条件在创建表时可以使用, 也可以修改表的时候添加约束条件 【二】概览 非空约束(not null) 唯一性约束(unique) 组合使用 not null 和 uniqu
阅读全文
摘要:【一】创建表的完整语法 create table 表名( 字段名1 类型(宽度) 约束条件, 字段名2 类型(宽度) 约束条件, 字段名3 类型(宽度) 约束条件, ); 同一张表中字段名不能重复 宽度和约束条件是可选的(可写可不写) 约束条件可以写多个 【二】基础语法 【1】字段名和字段类型是必须
阅读全文
摘要:【一】什么是存储引擎 日常生活中文件格式有很多,并且针对不同的文件格式会有对应不同的存储方式和处理机制 针对不同的数据应该有对应的不同的处理机制 存储引擎就是不同的处理机制 【二】MySQL主要的存储引擎 【1】Innodb 是MySQL5.5版本之后的默认存储引擎 支持事务/行锁/外键 【2】my
阅读全文
摘要:【一】针对库的增删改查(文件夹) 【1】创建数据库 (1)语法 在磁盘上创建一个存储数据表的文件夹。 create database [if not exists] 数据库名 [character set 编码字符集]; 注意:mysql中的编码字符集中utf-8,要换成utf8mb4。SQL语句中
阅读全文
摘要:【一】引入 前面的学习中我们提到,mysql是关系型数据库, 所以我们要操作mysql就需要使用SQL(结构化查询语言)。 【二】SQL规范 在数据库管理系统中,SQL语句关键字不区分大小写(但建议用大写) ,参数区分大小写。 建议命令大写,数据库名、数据表名、字段名统一小写,如数据库名、数据表名、
阅读全文
摘要:【一】各种服务器的端口 MySQL :3306 Redis : 6379 MongoDB : 27017 Django : 8000 flask : 5000 【二】MySQL数据库介绍 MySQL是一个开源免费的关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公
阅读全文
摘要:【一】SQL语句的由来 【1】socket通信 任何基于网络通信的应用程序底层用的都是scoket 服务端 基于socket通信 收发消息 客户端 基于socket通信 收发消息 【2】SQL语句的由来 为了使 MySQL 不仅能支持 MySQL 自己的客户端应用程序,还能支持其他编程语言 MySQ
阅读全文
摘要:【一】存储数据的演变过程 【1】文件存储 在早期,随意地存放到一个文件中、数据格式也是千差万别的,完全取决于个人 【2】软件开发目录规范 (1)概要 限制了存储数据的具体位置 建立专门的文件夹存储数据 (2)软件开发目录规范 bin:主要存放主程序文件,例如main.py; conf:主要存放配置文
阅读全文
摘要:【7.0】网络并发总复习解释版 网络编程部分 【一】软件开发架构 【1】什么是CS架构 CS架构即 客户端/服务端架构,如APP应用 【2】什么是BS架构 BS架构即 浏览器/服务端架构,如网页的网站 【3】二者相比的优缺点 (1)优点 CS架构 服务器运行数据载荷轻 数据的储存管理较为透明 BS架
阅读全文
摘要:【6.0】网络并发总复习 网络编程部分 【一】软件开发架构 【二】互联网协议 【1】OSI七层 【2】五层协议 【3】以太网协议 【4】IP协议 【5】广播风暴 【6】TCP/UDP 【三】三次握手,四次挥手(****) 【四】socket协议 【五】TCP粘包问题(定值固定长度报头) 【六】UDP
阅读全文
摘要:【一】多进程和多线程 import os.path import time from multiprocessing import Process from threading import Thread import requests from lxml import etree from fak
阅读全文
摘要:【零】IO模型简介 我们研究的 IO 都是基于网络 IO 的 Stevens在文章中一共比较了五种IO Model: blocking IO nonblocking IO IO multiplexing signal driven IO (忽略) asynchronous IO 由signal dr
阅读全文
摘要:基于 async 和 await 关键字的协程可以实现异步编程,这也是目前 Python 异步相关的主流技术。在这里我们主要介绍一下实现异步的模块:asyncio 模块 【一】asyncio 模块 asyncio 模块是 Python 中实现异步的一个模块,该模块在 Python3.4 的时候发布
阅读全文
摘要:【一】基于单线程来实现并发 【0】并发的本质 本节的主题是基于单线程来实现并发 即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发 为此我们需要先回顾下并发的本质: 切换+保存状态 CPU正在运行一个任务 会在两种情况下切走去执行其他的任务(切换由操作系统强制控制) 一种情况是该任务发生
阅读全文
摘要:【一】TCP实现并发的效果的原理 每开设一个客户端,就会有一个服务端服务 【1】服务端 from socket import * from threading import Thread def server_create(IP, PORT): server = socket() server.bi
阅读全文
摘要:【零】队列queue介绍 queue队列 : 使用import queue,用法与进程Queue一样 queue is especially useful in threaded programming when information must be exchanged safely betwee
阅读全文
摘要:【一】信号量(了解) 信号量Semahpore(同线程一样) 【1】引入 互斥锁 同时只允许一个线程更改数据,而Semaphore是同时允许一定数量的线程更改数据 比如厕所有3个坑,那最多只允许3个人上厕所,后面的人只能等里面有人出来了才能再进去 如果指定信号量为3,那么来一个人获得一把锁,计数加1
阅读全文
摘要:【一】死锁 【1】介绍 死锁是指两个或多个进程,在执行过程中,因争夺资源而造成了互相等待的一种现象。 即两个或多个进程持有各自的锁并试图获取对方持有的锁,从而导致被阻塞,不能向前执行,最终形成僵局。 在这种情况下,系统资源利用率极低,系统处于一种死循环状态。 【2】示例 from threading
阅读全文

浙公网安备 33010602011771号