06 2019 档案

摘要:pymysql 是一个纯 Python 实现的 MySQL 客户端操作库今天说一下用pymysql实现对数据库的基本增删改查 首先需要连接数据库 在使用过程中sql操作指令大都是拼接出来的会有sql注入的风险在这里我们同过转义的方法来规避 对数据进行增删改之后需要提交数据后对数据库的操作才会生效 阅读全文
posted @ 2019-06-26 09:26 adiugy 阅读(177) 评论(0) 推荐(0)
摘要:from DBUtils.PooledDB import PooledDB import pymysql POOL = PooledDB( creator=pymysql, # 使用链接数据库的模块 maxconnections=6, # 连接池允许的最大连接数,0和None表示不限制连接数 mincached=2, # 初始化时,链接池中至少创建的空闲的链接,0... 阅读全文
posted @ 2019-06-25 19:08 adiugy 阅读(968) 评论(0) 推荐(0)
摘要:SQLAlchemy SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 SQLAlchemy本身无法操作数据库,其必须以来pymsql等第三方插件, 阅读全文
posted @ 2019-06-19 12:22 adiugy 阅读(237) 评论(0) 推荐(0)
摘要:用户的列表在mysql数据库下的user表内 创建用户 create user '用户名'@'IP地址' identified by '密码';删除用户 drop user '用户名'@'IP地址';修改用户 rename user '用户名'@'IP地址' to '新用户名'@'IP地址';修改密 阅读全文
posted @ 2019-06-17 20:25 adiugy 阅读(190) 评论(0) 推荐(0)
摘要:索引: 作用: 加快查询的速度 类比: 新华字典的目录, 可以将索引理解成一个特殊的文件, 然后如果没有这个文件的话, 查询是从前到后查找数据的, 如果有这个文件的话, 会按照一种特殊的数据结构(二叉树)查找数据 分类: 主键索引: 加快查询 + 不能重复 + 不能为空 primary key 唯一 阅读全文
posted @ 2019-06-17 18:31 adiugy 阅读(120) 评论(0) 推荐(0)
摘要:事务:一组操作, 要么都成功, 要么都失败 特性: 原子性: 一组操作, 要么都成功, 要么都失败 一致性(Consistency):指事务发生前和发生后,数据的总额依然匹配 隔离性(Isolation):简单点说,某个事务的操作对其他事务不可见的 持久性(Durability):当事务完成后,其影 阅读全文
posted @ 2019-06-17 16:33 adiugy 阅读(274) 评论(0) 推荐(0)
摘要:语言:python sql注入原理: 首先看一下登录程序代码 正常用户输入用户名和密码不会出现问题但是当输入带有意义的字符时也会登陆成功 这是因为在我们采用拼接字符串的方法来生成mysql指令但是如上生成的指令为 #后面的代码被注释掉了,而且语句也依然合法通过sname来搜索到的用户存在就可以正常登 阅读全文
posted @ 2019-06-17 15:56 adiugy 阅读(403) 评论(0) 推荐(0)
摘要:1. 触发器 在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器 2 .为何要用触发器? 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行 就会触发触发器的执行,即自动运行另外一段sql代码 3 创建触发器语法 针对插入 针对删除 阅读全文
posted @ 2019-06-16 14:36 adiugy 阅读(167) 评论(0) 推荐(0)
摘要:增: insert into 表名 (列名1, 列名2,) values(值1, 值2); insert into 表名 (列名1, 列名2,) values(值1, 值2),(值1,值2),(值n,值n); insert into 表名 (列名1, 列名2,) select 列名1, 列名2 fr 阅读全文
posted @ 2019-06-14 12:24 adiugy 阅读(222) 评论(0) 推荐(0)
摘要:为什么使用外键 例如上表中员工所属的部门列存在重复的数据,而且如果部门过长的话, 太占用空间,所以我们可以重新设计一张表, 这张表 中存放部门的相关信息 这种解决方法就是使用外键来解决的 操作方法: constraint 外键名(fk_userinfo_depart) foreign key (列名 阅读全文
posted @ 2019-06-14 12:12 adiugy 阅读(144) 评论(0) 推荐(0)
摘要:1.数值型 create table t4 ( id unsigned mediumint auto_increment primary key, name char(32) not null default '', pwd char(32) not null default '' )engine= 阅读全文
posted @ 2019-06-13 09:27 adiugy 阅读(510) 评论(0) 推荐(0)
摘要:对数据库的操作 1.数据库 增:create database 数据库名; 例:create database db1 删:drop database 数据库名; 例:drop database db1 改:对数据库的操作没有修改,有需求的话可以删掉重新建 查:show databases (展示所 阅读全文
posted @ 2019-06-13 09:21 adiugy 阅读(165) 评论(0) 推荐(0)
摘要:程序阻塞的过程 假设系统目前运行了三个进程 A B C 进程A正在运行一下socket程序 1.系统会创建文件描述符指向一个socket对象 ,其包含了读写缓冲区,已经进行等待队列 2.当执行到accept / recv 时系统会讲进程A 从工作队列中移除 3.将进程A的引用添加到 socket对象 阅读全文
posted @ 2019-06-11 21:20 adiugy 阅读(893) 评论(0) 推荐(0)
摘要:什么是线程池,进程池 线程池,进程池本质上就是一个存储进程或线程的列表,如果是IO密集型任务使用线程池,如果是计算密集任务则使用进程池 为什么需要线程池,进程池 在很多情况下需要控制进程或线程的数量在一个合理的范围,例如TCP程序中,一个客户端对应一个线程,虽然线程的开销小,但肯定不能无限的开,否则 阅读全文
posted @ 2019-06-05 21:55 adiugy 阅读(179) 评论(0) 推荐(0)
摘要:什么是GIL GIL是python的全局解释器锁,他是一个互斥锁,由于GIL的存在在同一时间只能有一个线程持有对python解释器的控制权。 GIL产生的原因 python是使用引用计数的方式管理内存(GC),python在内存中使用的数据会被添加一个计数,使用某个数据的话该数据的引用计数就会+1释 阅读全文
posted @ 2019-06-05 21:29 adiugy 阅读(204) 评论(0) 推荐(0)
摘要:线程的特点 线程是程序运行中的最基本单元,在一个进程内有且至少有一个进程。 进程:内存独立,CPU独立,速率低共享数据难,安全性高 线程:内存共享,CPU使用独立,是cpu最小的执行单位 线程的创建方法 1.直接实例化Thread类 2.创建类覆盖Thread中的run方法 使用方法和进程一样,但是 阅读全文
posted @ 2019-06-04 21:01 adiugy 阅读(127) 评论(0) 推荐(0)
摘要:IPC指的是进程间通讯进程是在相互独立的内存中运行的,所以当一个进程需要使用另一个进程的数据时就要使用IPC 共享内存 1.Manager类 Manager提供很多数据结构 list dict等等 Manager所创建出来的数据结构,具备进程间共享的特点 需要强调的是 Manager创建的一些数据结 阅读全文
posted @ 2019-06-03 17:30 adiugy 阅读(730) 评论(0) 推荐(0)
摘要:守护进程 守护进程是指一个进程守护另一个进程 例如a是b的守护进程b如果结束了a也会随之结束 父进程交给了子进程一个任务,任务还没有完成父进程就结束了,子进程就没有继续执行的意义了 互斥锁 互斥锁是为了保证多进程在调用统一资源时不会产生数据错乱的机制。 解决多进程同时操作一个资源产生错乱的方法有两个 阅读全文
posted @ 2019-06-03 17:12 adiugy 阅读(436) 评论(0) 推荐(0)