一、mysql数据库与python的基础搭建
1、安装服务

安装数据库服务、开启服务
yum install mariadb-server -y
systemctl start mariadb

安装其他服务

yum install gcc -y
yum install MySQL-python -y
网络下载所需内容;
前提:电脑安装好ipython
pip install Mysql-Python 
此时打开Pycharm查看是否能导入

这里写图片描述
2、安装网页数据库

安装服务
[root@localhost ~]# yum install php httpd php-mysql.x86_64 -y
开启服务、关闭防火墙
systemctl start httpd
systemctl stop firewalld
获得安装包、解压安装包
cd /var/www/html
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2
为使方便更改名字
mv phpMyAdmin-3.4.0-all-languages/ mysqladmin
快速安装php安装包
cd mysqladmin/
cp config.sample.inc.php config.inc.php
重看是否安装
浏览器输入http://172.25.10.250/mysqladmin

这里写图片描述
3、熟悉数据库基本操作

建立库、建立表

这里写图片描述

添加字段

这里写图片描述

更改字段

这里写图片描述
4、使用Pycharm操作数据库

mysql演练一
需求:查

这里写图片描述

mysql演练二
需求:增

这里写图片描述

使用网页数据库查看

这里写图片描述

mysql演练三
需求:删

这里写图片描述

用网页数据库查看

这里写图片描述

mysql演练四
需求:改
创建字段

这里写图片描述
这里写图片描述

使用网页数据库查看

这里写图片描述

mysql演练五
需求:插入多条数据

这里写图片描述

使用网页数据库查看

这里写图片描述

mysql演练六
知识点:
提交和回滚,在数据库里叫事务操作
需求:
在库中建立money表,在表中建立2个表id 1 number 100 id 2 number 0
运行程序后1的number100转移到2
创建字段

这里写图片描述
这里写图片描述
这里写图片描述

使用网页数据库查看结果

这里写图片描述
二、多线程

多线程演练一
知识点:
线程是操作系统能够进行运算调度的最小单位(程序执行流的最小单元)
它被包含在进程之中,是进程中的实际运作单位。一个进程中可以并发多个线程
每条线程并行执行不同的任务
(线程是进程中的一个实体,是被系统独立调度和分派的基本单元)

每一个线程启动时都会最先产生一个线程,即主线程
然后主线程会再创建其他的子线程
需求:
  一开始主线程和子线程一块儿执行,随后分时间间隔执行

这里写图片描述
这里写图片描述

多线程演练二

这里写图片描述

多线程演练三
需求:子线程结束,主线程才结束

这里写图片描述

多线程演练四
需求:主线程和子线程同时执行,主线程结束了子线程还在继续

这里写图片描述

多线程演练五

这里写图片描述
这里写图片描述

多线程演练六
知识点:
  多线程能干什么:
生产者消费者问题:(经典)
一直生产 一直消费 中间有阀值 避免供求关系不平衡

#线程安全问题,要是线程同时来,听谁的
#锁:一种数据结构 队列:先进线出 栈:先进后出

#生产者消费者的优点(为什么经典的设计模式)
    1.解耦(让程序各模块之间的关联性降到最低)
        假设生产者和消费者是两个类,如果让生产者直接调用消费者的某个方法,那么生产者对于消费者就会产生依赖(也就是耦合),
        如果将来消费者的代码发生变换,可能会影响到生产者,而如果两者都依赖于某个缓冲区,两者之间不直接依赖,
        耦合也就相应降低了
    生活中的例子:我们 邮筒 邮递员
举个例子,我们去邮局投递信件,如果不使用邮筒(也就是缓冲区),你必须得把信直接交给邮递员,有同学会说,
直接交给邮递员不是挺简单的嘛,其实不简单,你必须得认识邮递员,才能把信给他(光凭身上的制服,万一有人假冒呢???),
这就产成你和邮递员之间的依赖了(相当于生产者消费者强耦合),万一哪天邮递员换人了,
你还要重新认识一下(相当于消费者变化导致修改生产者代码),而邮筒相对来说比较固定,
你依赖它的成本就比较低(相当于和缓冲区之间的弱耦合)
    2.支持并发
        生产者消费者是两个独立的并发体,他们之间是用缓冲区作为桥梁连接,生
        产者之需要往缓冲区里丢数据,就可以继续生产下一个数据,而消费者者只需要从缓冲区里拿数据即可,
        这样就不会因为彼此速度而发生阻塞
    接着上面的例子:如果我们不使用邮筒,我们就得在邮局等邮递员,直到他回来了,我
    们才能把信给他,这期间我们啥也不能干(也就是产生阻塞),或者邮递员挨家挨户的问(产生论寻)
    3.支持忙闲不均
        如果制造数据的速度时快时慢,缓冲区的好处就体现出来了,当数据制造快的时候,
        消费者来不及处理,未处理的数据可以暂时存在缓冲区中,等生产者的速度慢下来,
        消费者再慢慢处理
    情人节信件太多了,邮递员一次处理不了,可以放在邮筒中,下次在来取

需求:
操作系统
生产者、消费者有限额的生产包子、有限额的领取包子
生产者和消费者不知道彼此

这里写图片描述
这里写图片描述
这里写图片描述

多线程演练七
需求:线程锁

这里写图片描述
三、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这个号码,并需要打电话
socket演练
服务端:

这里写图片描述

客户端:

这里写图片描述

测试

这里写图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐