失败只有一种,就是半途而废

2017年12月14日

摘要: pymysql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。 使用操作 1.执行SQL 2、获取新创建数据自增ID 3、获取查询数据 4、fetch数据类型 关于默认获取的数据是元祖类型,如果想要或者字典类型的数据,即: 注:在fetch数据时按照顺序进行, 阅读全文
posted @ 2017-12-14 09:28 sun96 阅读(114) 评论(0) 推荐(0) 编辑
 

2017年12月8日

摘要: Http协议 一 HTTP概述 HTTP(hypertext transport protocol),即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。 HTTP就是一个通信规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。其实我们要学 阅读全文
posted @ 2017-12-08 12:14 sun96 阅读(129) 评论(0) 推荐(0) 编辑
 

2017年12月7日

摘要: 需求:有一张银行账户表,有A用户给B用户转账:A账户先减少,B账户增家。但是A操作完之后断电了。 解决方案:A减少钱,但是不要立即修改数据表,B收到钱之后,同时修改数据表。 事务安全 事物 transaction:一系列要发生的连续的操作事务安全:一种保护连续操作同时满足(实现)的一种机制事务安全的 阅读全文
posted @ 2017-12-07 10:13 sun96 阅读(216) 评论(0) 推荐(0) 编辑
 

2017年12月6日

摘要: 数据备份与还原 备份:将当前已有的数据或者记录保留还原:将已经保留的数据恢复到对应的表中 为什么要做备份还原?1.防止数据丢失:被盗,误操作2.保护数据记录 数据备份还原的方式有很多种:数据表备份,单表数据备份,SQL备份,增量备份。 数据表备份 不需要通过SQL备份:直接进入到数据库文件夹复制对应 阅读全文
posted @ 2017-12-06 12:28 sun96 阅读(408) 评论(0) 推荐(0) 编辑
 
摘要: 视图 视图:view,是一种有结构(有行有列)但是没有结果(结构中不真实存放数据)的虚拟表虚拟表的结构来源不是自己定义,而是从对应的基表中产生(视图的数据来源)。 创建视图基本语法:create view 视图名字 as select 语句; -- select语句可以是普通查询;可以是连接查询;可 阅读全文
posted @ 2017-12-06 12:23 sun96 阅读(238) 评论(0) 推荐(0) 编辑
 
摘要: 联合查询联合查询:将多次查询(多条select 语句),在记录上进行拼接(字段不会增加) 基本语法多条select语句构成:每一条select语句获取的字段数必须严格一致(但是字段类型无关) select 语句1Union [union 选项]select 语句2Union 选项:与select 选 阅读全文
posted @ 2017-12-06 12:17 sun96 阅读(4156) 评论(0) 推荐(0) 编辑
 

2017年12月1日

摘要: 一、HTML初识 1.什么是HTML? HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记)。 2、网页的组成 我们平时看到的网页一般由3个部分组成: HTML(Hypertext Markup Language) CS 阅读全文
posted @ 2017-12-01 23:55 sun96 阅读(200) 评论(0) 推荐(0) 编辑
 
摘要: 外键 外键:foreign key,外面的键(键不在自己表中),如果一张表中有一个字段(非主键)指向另外一张表中的主键,那么该字段称之为外键. 增加外键1.外键可以在创建表的时候或者创建表之后增加(但是要考虑数据的问题) 一张表可以有多个外键2.创建表的时候增加外键:在所有的表字段之后,使用fore 阅读全文
posted @ 2017-12-01 11:16 sun96 阅读(1757) 评论(0) 推荐(0) 编辑
 
摘要: 连接查询 连接查询:将多张表(可以大于2张)进行记录的连接(按照某个指定的条件进行数据拼接):最终结果是:记录数有可能变化,字段数一定会增加(至少两张表的合并) 连接查询的意义:在用户查看数据的时候,需要显示的数据来自多张表 连接查询:join,使用方式:左表 join 右表左表:在join关键字左 阅读全文
posted @ 2017-12-01 11:10 sun96 阅读(314) 评论(0) 推荐(0) 编辑
 

2017年11月24日

摘要: 数据高级操作 基本语法Insert into 表名[(字段列表)] values(值列表); 在数据插入的时候,假设主键对应的值已经存在:插入一定失败 主键冲突在主键存在冲突的时候(Duplicate Key),可以选择性的进行处理:更新和替换 主键冲突:更新操作Insert into 表名[(字段 阅读全文
posted @ 2017-11-24 17:24 sun96 阅读(237) 评论(0) 推荐(0) 编辑
 

2017年11月23日

摘要: Python操作Redis API使用 redis-py 的API的使用可以分类为: 连接方式 连接池 操作管道 String 操作 Hash 操作 List 操作 Set 操作 Sort Set 操作 发布订阅 String 操作 Hash 操作 List 操作 Set 操作 Sort Set 操 阅读全文
posted @ 2017-11-23 17:49 sun96 阅读(180) 评论(0) 推荐(0) 编辑
 
摘要: Redis是一个key-value存储系统,官网:http://redis.ioRedis和memcached类似,但是支持数据持久化Redis支持更多value类型,除了string外,还支持hash、lists(链表)、sets(集合)和sorted setd(有序集合)这几种类型Redis使用 阅读全文
posted @ 2017-11-23 17:16 sun96 阅读(161) 评论(0) 推荐(0) 编辑
 

2017年11月21日

摘要: 事件驱动模型 协程:遇到IO操作就切换。 但什么时候切回去呢?怎么确定IO操作完了? 很多程序员可能会考虑使用“线程池”或“连接池”。“线程池”旨在减少创建和销毁线程的频率,其维持一定合理数量的线程,并让空闲的线程重新承担新的执行任务。“连接池”维持连接的缓存池,尽量重用已有的连接、减少创建和关闭连 阅读全文
posted @ 2017-11-21 16:28 sun96 阅读(4591) 评论(0) 推荐(2) 编辑
 
摘要: 协程 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。 在单线程实现并发的效果就是协程,yield,线程之间上下文切换是在cpu寄存器中。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前 阅读全文
posted @ 2017-11-21 12:17 sun96 阅读(180) 评论(0) 推荐(0) 编辑
 
摘要: 进程 进程,至少包含一个线程 IO操作不占用CPU,从内存,硬盘,网络读数据这都叫IO操作 计算才占用CPU python多线程,不适合CPU密集操作性任务,适合IO操作密集型任务 创建新进程需要对其父进程进行一次克隆 一个线程可以控制和操作同一进程里的其他线程,但是进程只能操作子进程 多进程mul 阅读全文
posted @ 2017-11-21 11:04 sun96 阅读(116) 评论(0) 推荐(0) 编辑
 

2017年11月17日

摘要: 进程与线程 什么是进程? 进程是一堆资源的集合,例如:进程里面可以包含变量 内存地址,线程等. 一个进程里面包含一个主线程 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是 阅读全文
posted @ 2017-11-17 14:52 sun96 阅读(104) 评论(0) 推荐(0) 编辑
 

2017年11月15日

摘要: socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HT 阅读全文
posted @ 2017-11-15 17:18 sun96 阅读(200) 评论(0) 推荐(0) 编辑
 

2017年11月6日

摘要: 服务器端: 客户端: 阅读全文
posted @ 2017-11-06 16:10 sun96 阅读(117) 评论(0) 推荐(0) 编辑
 

2017年11月2日

摘要: 一、类的属性 1、@property属性 作用就是通过@property把一个方法变成一个静态属性 class Room: def __init__(self,name,length,width,height): self.name=name self.length=length self.widt 阅读全文
posted @ 2017-11-02 10:33 sun96 阅读(219) 评论(0) 推荐(0) 编辑
 

2017年10月26日

摘要: 范式 范式:Normal Format,是一种离散数学中的知识,是为了解决一种数据的存储与优化的问题.保存数据的存储之后,凡是能够通过关系寻找出来的数据,坚决不再重复存储:终极目标是为了减少数据的冗余. 范式:是一种分层结构的规范,分为六层,每一层都比上一层更加严格:若要满足下一层范式,前提是满足上 阅读全文
posted @ 2017-10-26 11:10 sun96 阅读(185) 评论(0) 推荐(0) 编辑
 

2017年10月24日

摘要: 一、创建类和对象 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 def Dog(name,type): def cal 阅读全文
posted @ 2017-10-24 15:57 sun96 阅读(182) 评论(0) 推荐(0) 编辑
 

2017年10月20日

摘要: 一、模块 1、import导入模块 #1.定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑),本质就是.py结尾的python文件,实现一个功能 包:python package 用来从逻辑上组织模块 本质就是一个目录(必须带有一个__init__.py的文件) #2.导入方法 i 阅读全文
posted @ 2017-10-20 12:08 sun96 阅读(234) 评论(0) 推荐(0) 编辑
 

2017年10月19日

摘要: 使用文件快照的方式实现文件备份,但单说快照(snapshot)的话,他是某一时间点(版本)你能看到的该时间点备份文件状态的全貌,通过文件的快照(全貌)你能恢复到特定时间点(版本)的文件状态。 创建虚拟机sunhao-1的快照 virsh snapshot-create sunhao-1 查看格式 q 阅读全文
posted @ 2017-10-19 14:02 sun96 阅读(3312) 评论(0) 推荐(0) 编辑
 

2017年10月13日

摘要: virsh 命令 virsh list //列出正在运行虚拟机 virsh list --all //列出所有虚拟机 virsh console sunhao-1 //进入名字为sunhao-1的虚拟机 ssh 192.168.10.180 //进入IP地址为192.168.10.180的虚拟机 c 阅读全文
posted @ 2017-10-13 10:34 sun96 阅读(2760) 评论(0) 推荐(0) 编辑
 

2017年10月9日

摘要: 索引 几乎所有的索引都是建立在字段之上. 索引:系统根据某种算法,将已有的数据(未来可能新增的数据),单独建立一个文件:文件能够实现快速的匹配数据,并且能够快速的找到对应表中的记录 索引的意义1.提升查询数据的效率2.约束数据的有效性(唯一性等) 增加索引的前提条件:索引本身会产生索引文件(有时候可 阅读全文
posted @ 2017-10-09 11:36 sun96 阅读(138) 评论(0) 推荐(0) 编辑
 
摘要: 唯一键 一张表往往需要很多字段需要具有唯一性,数据不能重复:但是一张表中只能有一个主键:唯一键(unique key)就可以解决表中有多个字段需要唯一性约束的问题唯一键的本质与主键差不多:唯一键默认的允许自动为空,而且可以多个为空(空字段不参与唯一性比较) 增加唯一键 基本与主键差不多:三种方案 方 阅读全文
posted @ 2017-10-09 11:32 sun96 阅读(416) 评论(0) 推荐(0) 编辑
 

2017年9月29日

摘要: 安装虚拟机 补充:如果是想挂载ntfs文件的移动设备,需要先在操作系统上安装一个包 ntfs-3g_ntfsprogs-2017.3.23.tgz 步骤为:1. cd /usr/local/src 2. wget https://tuxera.com/opensource/ntfs-3g_ntfsp 阅读全文
posted @ 2017-09-29 10:50 sun96 阅读(233) 评论(0) 推荐(0) 编辑
 
摘要: 自增长 自增长:当对应的字段,不给值或者说给默认值,或者给NULL的时候,会自动的被系统触发,系统会从当前的字段中已有的最大值在进行+1操作,得到一个新的在不同的字段。 新增自增长 自增长通常是跟主键搭配 自增长特点:auto_increment1.任何一个字段要做自增长前提必须是一个索引(key一 阅读全文
posted @ 2017-09-29 10:02 sun96 阅读(1622) 评论(0) 推荐(0) 编辑
 

2017年9月28日

摘要: 一. 安装kvm前的准备工作 1. 清除iptables规则 service iptables save service iptables stop 2. 关闭selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/co 阅读全文
posted @ 2017-09-28 12:23 sun96 阅读(479) 评论(0) 推荐(0) 编辑
 
摘要: 半虚拟化和全虚拟化最大的区别: 半虚拟化是需要更改系统内核才得以实现虚拟化,而完全虚拟化是不需要修改内核。 Xen虚拟机有两种运行方式:完全虚拟化(full virtualization)和半虚拟化(para virtualization) 完全虚拟化提供底层物理系统的全部抽象化,且创建一个新的虚拟 阅读全文
posted @ 2017-09-28 11:26 sun96 阅读(14703) 评论(0) 推荐(0) 编辑