07 2018 档案

摘要:CSS盒子模型 HTML文档中的每个元素都被描绘成矩形盒子,这些矩形盒子通过一个模型来描述其占用空间,这个模型称为盒子模型。 盒子模型通过四个边界来描述:margin(外边距),border(边框),padding(内填充),content(内容区域)width(内容宽度),height(内容高度) 阅读全文
posted @ 2018-07-16 17:05 游走在边缘的人 阅读(257) 评论(0) 推荐(0) 编辑
摘要:数据类型 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob.com/mysql/mysql-data-types.html http://dev.mysql.com/doc/refman/5.7/en 阅读全文
posted @ 2018-07-04 15:18 游走在边缘的人 阅读(485) 评论(0) 推荐(0) 编辑
摘要:## pymysql的安装 pip3 install pymysql ## pymysql的链接、执行sql、关闭(游标) import pymysql user=input('用户名: ').strip() pwd=input('密码: ').strip() #链接 conn=pymysql.connect( host='localhost', user='root',... 阅读全文
posted @ 2018-07-04 15:17 游走在边缘的人 阅读(140) 评论(0) 推荐(0) 编辑
摘要:一、表关系 年级表:class_grade create table class_grade( gid int primary key auto_increment, gname varchar(20) not null ); insert into class_grade(gname) values ('一年级'), ('二年级'), ('三年级... 阅读全文
posted @ 2018-07-04 15:15 游走在边缘的人 阅读(397) 评论(0) 推荐(0) 编辑
摘要:视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 一、创建视图 #语法:CREATE VIEW 视图名称 AS SQL语句 create view teacher_view as select tid from teacher where tname='李平老师'; #于是... 阅读全文
posted @ 2018-07-04 15:10 游走在边缘的人 阅读(195) 评论(0) 推荐(0) 编辑
摘要:单表查询 单表查询语法: select distinct 字段1,字段2,字段3 from 库.表 where 条件 group by 分组条件 having 过滤 order by 排序字段 limit n; 关键字执行顺序(重点) 1、from 2、where 3、group by 4、having 5、select 7、disti... 阅读全文
posted @ 2018-07-04 15:09 游走在边缘的人 阅读(123) 评论(0) 推荐(0) 编辑
摘要:约束条件 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性 主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (UK) 标识该字段的值是唯一的 AUTO_INCREMENT ... 阅读全文
posted @ 2018-07-04 15:08 游走在边缘的人 阅读(156) 评论(0) 推荐(0) 编辑
摘要:库 库分为以下几种: information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等 performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象 mysql: 授权库,主要存储系统用户的权限信息 test: MySQL... 阅读全文
posted @ 2018-07-04 15:07 游走在边缘的人 阅读(97) 评论(0) 推荐(0) 编辑
摘要:存储引擎 存储引擎指的是表的类型 查看支持的存储引擎: MariaDB [(none)]> show engines\G #查看所有支持的存储引擎 MariaDB [(none)]> show variables like 'storage_engine%'; #查看正在使用的存储引擎 存储引擎分为以下几种: 1、InnoDB 存储引擎 支持事务,其设计目标主要面向联机事务处理(O... 阅读全文
posted @ 2018-07-04 15:07 游走在边缘的人 阅读(122) 评论(0) 推荐(0) 编辑
摘要:数据库 1 什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机 在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如: 1 egon,male,18,1999,山东,计算机系,2017,oldboy 单纯的一条记录并没有任... 阅读全文
posted @ 2018-07-04 15:06 游走在边缘的人 阅读(244) 评论(0) 推荐(0) 编辑
摘要:sql基本语句 有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写 mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要下载mysql的客户端,或者其他模块来连接到mysqld,然后使用mysql软件规定的语法格式去提交自己命令,实现对文件夹或文件的管理。该语法即sql(Structured Query Langu... 阅读全文
posted @ 2018-07-04 15:06 游走在边缘的人 阅读(154) 评论(0) 推荐(0) 编辑
摘要:协程 协程:是单线程下的并发,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的 需要强调的是: 1. python的线程属于内核级别的,即由操作系统控制调度(如单线程遇到io或执行时间过长就会被迫交出cpu执行权限,切换其他线程运行) 2. 单线程内开启协程,一旦遇到io,就会从应用程序级别(而非操作系统)控制切... 阅读全文
posted @ 2018-07-04 14:59 游走在边缘的人 阅读(282) 评论(0) 推荐(0) 编辑
摘要:开启进程的两种方法 使用multiprocessing模块, multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似。multiprocessing模块的功能众多:支持子进程、通信和共享数据、执行不同形式的同步,>提供了Process、Queue、Pipe、Lock等组件。 Process的类: 创建进... 阅读全文
posted @ 2018-07-04 14:58 游走在边缘的人 阅读(330) 评论(0) 推荐(0) 编辑
摘要:join方法 在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情况 情况一:在主进程的任务与子进程的任务彼此独立的情况下,主进程的任务先执行完毕后,主进程还需要等待子进程执行完毕,然后统一回收资源。 情况二:如果主进程的任务在执行到某一个阶段时,需要等待子进程执行完毕后才能继续执行,就需要有一种机制能够让主进程检测子进程是否运行完毕,在子... 阅读全文
posted @ 2018-07-04 14:58 游走在边缘的人 阅读(262) 评论(0) 推荐(0) 编辑
摘要:IO模型 IO主要分为:阻塞IO,非阻塞IO,多路复用IO,异步IO IO模型一般会经历两个阶段: 1)等待数据准备 (Waiting for the data to be ready) 2)将数据从内核拷贝到进程中(Copying the data from the kernel to the process) 阻塞IO(blocking IO) 在linux中,默认情况下所有的soc... 阅读全文
posted @ 2018-07-04 14:58 游走在边缘的人 阅读(145) 评论(0) 推荐(0) 编辑
摘要:进程池与线程池 属性介绍 concurrent.futures模块提供了高度封装的异步调用接口 ThreadPoolExecutor:线程池,提供异步调用 ProcessPoolExecutor: 进程池,提供异步调用 基本方法 1、submit(fn, *args, **kwargs) 异步提交任务 2、map(func, *iterables, timeout=None, chunk... 阅读全文
posted @ 2018-07-04 14:57 游走在边缘的人 阅读(241) 评论(0) 推荐(0) 编辑
摘要:守护进程 关于守护进程: 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allowed to have children #!/usr/bin/env python3 # -*- coding:utf-8 -*- from multiprocessing ... 阅读全文
posted @ 2018-07-04 14:57 游走在边缘的人 阅读(145) 评论(0) 推荐(0) 编辑
摘要:GIL介绍 GIL本质就是一把互斥锁,既然是互斥锁,所有互斥锁的本质都一样,都是将并发运行变成串行,以此来控制同一时间内共享数据只能被一个任务所修改,进而保证数据安全 如果多个线程的target=work,那么执行流程是: 多个线程先访问到解释器的代码,即拿到执行权限,然后将target的代码交给解释器的代码去执行 解释器的代码是所有线程共享的,所以垃圾回收线程也可能访问到解释器的代码而去... 阅读全文
posted @ 2018-07-04 14:56 游走在边缘的人 阅读(152) 评论(0) 推荐(0) 编辑
摘要:死锁 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程,如下: #!/usr/bin/env python3 # -*- coding:utf-8 -*- from threading import Thread,Lock import ... 阅读全文
posted @ 2018-07-04 14:56 游走在边缘的人 阅读(738) 评论(0) 推荐(0) 编辑
摘要:信号量 信号量也是一把锁,可以指定信号量为5,对比互斥锁同一时间只能有一个任务抢到锁去执行,信号量同一时间可以有5个任务拿到锁去执行,如果说互斥锁是合租房屋的人去抢一个厕所,那么信号量就相当于一群路人争抢公共厕所,公共厕所有多个坑位,这意味着同一时间可以有多个人上公共厕所,但公共厕所容纳的人数是一定的,这便是信号量的大小 from threading import Thread,Semaph... 阅读全文
posted @ 2018-07-04 14:56 游走在边缘的人 阅读(196) 评论(0) 推荐(0) 编辑
摘要:线程queue queue的三种用法: 先进先出->队列 import queue q=queue.Queue(3) q.put('first') q.put('second') q.put('third') print(q.get()) print(q.get()) print(q.get()) ''' 结果(先进先出): first second third ''' 后进先出-... 阅读全文
posted @ 2018-07-04 14:56 游走在边缘的人 阅读(90) 评论(0) 推荐(0) 编辑
摘要:多线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程(流水线的工作需要电源,电源就相当于cpu),而一条流水线必须属于一个车间,一个车间的工作过程是一个进程,车间负责把资源整合到一起,是一个资源单位,而一个车间内至少有一条流水线。 所以,进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是cpu上的执行... 阅读全文
posted @ 2018-07-04 14:55 游走在边缘的人 阅读(111) 评论(0) 推荐(0) 编辑
摘要:守护线程 无论是进程还是线程,都遵循:守护xx会等待xx运行完毕后被销毁 运行完毕并非终止运行: 1、对主进程来说,运行完毕指的是主进程代码运行完毕 2、对主线程来说,运行完毕指的是主线程所在的进程内所有非守护线程统统运行完毕,主线程才算运行完毕 详细解释: 1、主进程在其代码结束后就已经算运行完毕了(守护进程在此时就被回收),然后主进程会一直等非守护的子进程都运行完毕后回收子进程的资源... 阅读全文
posted @ 2018-07-04 14:55 游走在边缘的人 阅读(93) 评论(0) 推荐(0) 编辑