python进阶
清欢Viki
别人欣赏的永远是你骄傲的样子。
展开
-
Mysq 数据库(1)
这里用的是Linux使用mysql(命令窗口cmd),并非可视化窗口Navicate。1.mysql 简介 Mysql是最流行的关系型数据库管理系统之一,由瑞典MySQL AB公司开发,目前属于Oracle公司。 MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 (开源,免费) ...原创 2018-07-29 17:12:19 · 484 阅读 · 2 评论 -
python线程与进程
1.理解并发于并行并发:两个或多个事件在同一时间间隔内发生,一个处理机处理多个事件。 如两个客户端一个服务端,服务端每个时刻只能处理一个客户端,A已连接而未发送数据,服务端便去处理B,A发送数据, 服务端停止处理B,转而去处理A。并行:两个或多个事件在同一时刻发生,多个处理机处理多个事件。 如三个服务端三个客户端,每个...原创 2018-08-13 19:33:48 · 763 阅读 · 0 评论 -
datetime和logging模块
1.datetime模块 datetime是python处理时间和日期的标准库类名 功能说明 date 日期对象,常用的属性有year, month, day time 时间对象hour,minute,second,毫秒 datetime 日期时间对象,常用的属性有hour, minute, second, microsecond ti...原创 2018-08-08 16:51:39 · 187 阅读 · 0 评论 -
IO多路复用(linux epoll)
epoll必须在linux系统下才能使用!!!1.非阻塞套接字的弊端虽然非阻塞套接字解决了多个客户端连接的问题,但仍存在着不完美之处任何python都是要花费cpu资源的 如果数据还没有到达,那么accept、recv和send(在connect没有完成之前),一直在无效的浪费cpu资源 对应BlockingIOError的异常处理也是无效的cpu花费2.epoll才是真正的完美...原创 2018-08-13 10:43:31 · 725 阅读 · 0 评论 -
协程、greenlet 协程与gevent 协程
1.协程为什么要使用协程协程最大的优势就是协程极高的执行效率。子程序切换由程序自身控制,因此,没有线程切换的开销 第二大优势就是不需要多线程的锁机制,阻塞自动切换协程即是生成器对象的yield和send方法的配合使用生成器语法yield 一个对象返回这个对象 暂停这个函数 能带下次next重新激活def func(): print('第一次执行') ...原创 2018-08-15 13:08:31 · 557 阅读 · 0 评论 -
非阻塞套接字
普通套接字的缺陷普通套接字一次只能服务一个客户端,而且若无客户端连接,accept()一直阻塞,无数据传输,recv一直阻塞,传输效率极低。普通服务器的IO模型操作系统监听用户进程的状态,若无数据,则一直等待,知道用户请求数据,操作系统才进行数据处理。普通套接字实现的服务端的瓶颈在没有新的套接字来之前, 不能处理已经建立连接的套接字的请求(多个客户端连接只有一个被服务)...原创 2018-08-12 21:05:27 · 6742 阅读 · 0 评论 -
进程通信
1.独立的进程内存空间与共享的服务器进程空间进程是独立的,互不干扰的独立内存空间打印出a为1也就是说,主进程中的a不受子进程中a的干扰,他们是相互独立的那进程之间怎么通信那?进程间通信的解决方案创建一个服务器进程并返回一个管理器,管理器开辟一块空间(用于进程间数据共享)并返回一个代理,把这个代理通过args传递给其他进程,其他进程就可以通过这个代理访问共享的空间了。...原创 2018-08-15 09:19:28 · 822 阅读 · 0 评论 -
套接字
上一节简单提到过套接字,本篇阐述如何使用套接字进行数据传输。任意两台计算机都可以,简便起见,服务端和客户端均以自己计算机为例。1.创建套接字一般,用户认为数据可以直接在应用之间进行传输,实际则是应用调用套接字,数据通过套接字进行传输。简单套接字实例In [1]: import socketIn [2]: sock = socket.socket()In [3]: so...原创 2018-08-12 15:38:51 · 1258 阅读 · 1 评论 -
传输模型、TCP/IP和端口
1.传输模型基本模型每一个应用程序客户端要实现数据传输,都需要套接字去发送或者响应网络请求,客户端通过套接字,沿着网络设备将数据发送给其他客户端,相应客户端解析并接收数据。 层次划分各层说明 OSI七层网络模型 TCP/IP四层网络模型 对应协议 供操作系统或应用进行网络通信的标准接口 应用层 应用层 Telnet、FTP、SMTP、D...原创 2018-08-12 11:02:58 · 1962 阅读 · 0 评论 -
json与base64与hashlib模块
1.json模块 JSON是轻量级的文本数据交换格式,是前端与后台数据交互的格式,也就是JS和Python数据交互的格式。 js json python var teacher_1 = { name: 'sakura', age: 18, feature : ['高' ,'富', '帅'] } ...原创 2018-08-07 16:54:39 · 502 阅读 · 0 评论 -
MongoDB
1.认识MongoDB MongoDB基于分布式文件存储的开源数据库系统 . 1)文档结构的存储方式,能够更便捷的获取数据 2)海量数据下,性能优越 3)3.高效存储二进制大对象 (如照片和视频) RDBMS(关系型数据库管理系统) mongdb Database(数据库) Database(数据库) Tabl...原创 2018-08-02 17:41:10 · 154 阅读 · 0 评论 -
linux文件权限
linux文件基本属性使用ls -l可以看到文件的属性以及文件所属的用户和组,如drwxr-xr-x 32 sakura staff 1024 4 5 21:02 scrapy-rw-r--r--@ 1 sakura staff 156542 3 20 21:40 scrapy-arch.jpg-rw-r--r--@ 1 sakura staff 13...原创 2018-08-02 14:58:46 · 178 阅读 · 0 评论 -
进程池与线程池
1.可重复利用的线程若存在两个function,常规思路是开两个线程。若使用进程安全队列,将function传入队列,再将队列传入线程,就实现了一个线程处理多个function。from threading import Threadimport timeimport queuedef fun1(): time.sleep(2) print("任务一完成")def...原创 2018-08-14 13:16:24 · 272 阅读 · 0 评论 -
Redis数据库
1.认识RedisNoSQL(not only sql):一类新出现的数据库,特点: 1)不支持SQL语法 2)存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是Key Value形式 3)NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景 ...原创 2018-08-02 09:28:14 · 154 阅读 · 0 评论 -
Mysql数据库(3)
1.筛选条件比较运算符:= 等于 >= 大于等于 <= 小于等于 !=(或者<>) 不等于 > 大于 < 小于 is null 空 is not null 非空逻辑运算符:and 与(且) ...原创 2018-08-01 19:26:15 · 168 阅读 · 0 评论 -
进程与线程补充
1.进程与线程的标识进程pid顾名思义,pid是进程的身份标志import multiprocessingimport timedef func(): time.sleep(2)p = multiprocessing.Process(target=func)print('pid before start:',p.pid) #start之前无pidp.start(...原创 2018-08-14 08:43:02 · 113 阅读 · 0 评论 -
python操作数据库
python的编译器我用的是pycharm1.python操作mysql 连接接口:conn=pymysql.connect(**dbconfig) #dbfig保存连接信息 关闭接口:conn.close() 游标接口:cur=conn.cursor() #连接无法操作数据库,只有生成游标才能操作 关闭接口:cur.close() 执行接口:...原创 2018-08-05 17:08:29 · 486 阅读 · 0 评论 -
Mysql数据库(2)
1.表约束 约束是一种限制,通过退表的数据做出限制,来确保表中数据的完整性,唯一性。 default 默认约束 创建表若只添加某个或某几个字段数据,其他字段便默认赋空(NULL),可添加默认值约束来指定默认值。 例:create table tb( id int, name...原创 2018-07-31 15:54:00 · 142 阅读 · 0 评论 -
基于多线程与多进程的简易聊天室
功能实现服务端当有新的客户端连接时,显示连接信息 当有客户端发送消息时,显示消息发送者和内容客户端客户端连接时,显示本客户端的连接信息 客户端连接时,已连接的客户端收到新客户端的连接信息 当某一客户端发送消息时,所有客户端收到发送者和内容运行预览思路服务端1.设cpu核数为n,首先开n个进程2.每个进程开2n个线程3.使用进程安全队列和字典...原创 2018-08-16 21:16:27 · 2211 阅读 · 1 评论