06 2019 档案

摘要:MYSQL注入问题: 1、写sql语句的时候, %传值的时候, 需要加引号: sql = "select * from t4 where name = '%s' and pwd = '%s'" % (username, pwd) 上面的sql语句带来的风险是: 例一: username = zeka 阅读全文
posted @ 2019-06-17 20:43 sry 阅读(175) 评论(0) 推荐(0)
摘要:4.外键(一对多): 作用:1.约束 2.节省空间 create table department ( id int auto_increment primary key, depart_name varchar(32) not null default '', num int not null d 阅读全文
posted @ 2019-06-14 12:02 sry 阅读(137) 评论(0) 推荐(0)
摘要:为什么使用数据库: 数据如果比较多时我们需要考虑使用数据库来经行存储 数据库的分类: 关系型数据库: 1.有约束 2.基于硬盘的存储(即将数据永久存储到硬盘上,落地) 典型代表:Mysql oracle(国企) sqserver(微软) aqllite db2 非关系型数据库: 1.没有约束(key 阅读全文
posted @ 2019-06-13 10:21 sry 阅读(151) 评论(0) 推荐(0)
摘要:epoll 阅读全文
posted @ 2019-06-13 09:05 sry 阅读(84) 评论(0) 推荐(0)
摘要:IO模型 模型就是解决某个问题的套路 IO问题: 输入输出 我要一个用户名用来执行登陆操作,问题用户名需要用户输入,输入需要耗时, 如果输入没有完成,后续逻辑无法继续,所以默认的处理方式就是 等 将当前进程阻塞住,切换至其他进程执行,等到按下回车键,拿到了一个用户名,再唤醒刚才的进程,将状态调整为就 阅读全文
posted @ 2019-06-11 22:15 sry 阅读(109) 评论(0) 推荐(0)
摘要:我们知道GIL锁将导致CPython无法利用多核CPU的优势,只能使用单核并发的执行。很明显效率不高,那有什么办法能够提高效率呢? 效率要高只有一个方法就是让这个当前线程尽可能多的占用CPU时间,如何做到? 任务类型可以分为两种 IO密集型 和 计算密集型 对于计算密集型任务而言 ,无需任何操作就能 阅读全文
posted @ 2019-06-06 16:54 sry 阅读(115) 评论(0) 推荐(0)
摘要:一.什么是GIL 需要知道的是,解释器并不只有CPython,还有PyPy,JPython等等。GIL也仅存在与CPython中,这并不是Python这门语言的问题,而是CPython解释器的问题! 二.GIL带来的问题 首先必须明确执行一个py文件,分为三个步骤 从硬盘加载Python解释器到内存 阅读全文
posted @ 2019-06-06 16:20 sry 阅读(155) 评论(0) 推荐(0)
摘要:1.什么是线程 线程是操作系统最小的运算调度单位,被包含在进程中,一个线程就是一个固定的执行流程 线程和进程的关系 : 线程不能单独存在,必须存在与进程中 进程是一个资源单位,其包含了运行程序所需的所有资源 线程才是真正的执行单位 没有线程,进程中的资源无法被利用起来,所以一个进程至少包含一个线程, 阅读全文
posted @ 2019-06-04 16:53 sry 阅读(113) 评论(0) 推荐(0)
摘要:本章目录 一.什么是socket 二.为什么需要socket 三.socket的发展 四.python中的socket 五.基于TCP的socket 六.基于UDP的socket 六. 粘包问题详解 七.粘包的解决方案 引入:为什么一定要先学习网络协议? 之所以学习网络编程就是为了让我们的程序能够利 阅读全文
posted @ 2019-06-03 08:25 sry 阅读(215) 评论(0) 推荐(0)