一 Pyrhon对于mysql的操作
1. 环境搭建
首先需要搭建数据库环境以及MySQLdb的包环境并将其导入到python中:
在shell中执行以下操作(可能需要先将ipython安装):
yum install mariadb-server
yum install gcc
yum install MySQL-python
pip install Mysql-python (需要联网)
在执行完以上操作之后,开启数据库服务并配置服务密码。如果以上操作都成功,那么在pycharm中导入MySQLdb的时候不报错即不显示红色下划线或者可以使用Tab键补齐,就说明导入成功了,效果如下:
在MySQLdb的导入包完成之后,还需要搭建网页版的mysql:
准备安装包:
安装并开启httpd服务,将这个安装包放在/var/www/html目录下,并使用tar jxf 安装包名的指令解压安装包,解压完成后将解压包重命名为mysqladmin,然后删除安装包,进入解压后的目录,将config.sample.inc.php文件复制为config.inc.php文件。之后重启httpd服务。在浏览器重输入ip/mysqladmin/index.php,一切操作成功的话就可以看到网页版的phpadmin了:
输入数据库的用户名和密码,就可以进入到数据库中了。到此python对数据库的操作环境搭建完成了。
2. 对数据库的操作:
1)对数据库中表格中数据的查看:
表格数据的查看类似于一个取东西的过程:
首先将MySQLdb导入,使用回环接口和数据库用户、密码以及要操作的表格所在的库,进行对表格的操作:
输出结果:
2)以字典的形式打印输出结果:
输出结果:
3)数据的增添:
增添结果:
4) 数据的删除:
删除结果:
5) 数据的修改:
修改结果:
6)数据的传递:
传递结果:
7)插入多条数据:
插入结果:
二 多线程
线程是操作系统能够进行运算调度的最小单位(程序执行流的最小单元)
它被包含在进程中,是进程中的实际运作单位.一个进程中可以并发多个线程,
每条线程并行执行不同的任务
(线程是进程中的一个实体,是被系统独立调度和分派的基本单元)
每一个线程启动时都会最先产生一个线程,即主线程
然后主线程会创建其他的子线程
1. 产生子线程:
输出结果:
2.主线程和子线程:
输出结果:
3.将子线程在后台执行:
输出结果:
4.在指定时间内显示子进程:
输出结果:
5.主线程等待子线程指定时间:
输出结果:
6.线程的锁定:
对于输出较多的数据,由于子线程会抢夺内存资源,可能会达不到理想的输出。
举例:利用线程输出1到1000的数字:
输出结果:
输出结果出错,有部分数据没有输出:
为了解决这个问题,需要将线程锁定:
输出结果:
输出成功:
7. 消费者和生产者关系实例:买卖包子
1 )简单的关系:
输出结果:
2) 加入交互后的关系:
输出结果:
三 socket
什么是socket
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket
所谓socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过“套接字”向网络发出请求或应答网络请求
socket起源于Uinx,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open-->读写write/read-->关闭close”模式来操作,socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写 IO,打开,关闭)
Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原义那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电,有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务例如:中国移动客服
对于移动来说:一直监听一个号码10086,当有电话进来后,就分配一个客服和客户去沟通并处理请求
对于用户:需要知道10086这个号码,并需要打电话
举例:客户端和服务端数据交换:客户端发来一个数据,服务端返回一个数据。客户端输入exit结束数据交换过程
服务端:
客户端:
执行结果: