Pthon对mysql的操作、多线程以及socket

一  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结束数据交换过程

服务端:

客户端:

执行结果:

猜你喜欢

转载自blog.csdn.net/letter_A/article/details/81215170
今日推荐