Python学习笔记十一
1. 协程
并发的解决方案:
多进程
多线程
什么叫并发:看起来同时进行
如何实现并发:切换+保存状态
进程线程都是由操作系统调度的
协程:单线程下实现的并发,应用程序级别的切换,操作系统无法感知
找到一个解决方案:1.在多个任务直接切换+保存状态
2.检测应用程序的IO,实现遇到IO才切换。
并发提高效率:遇到IO的时候切换,才能提高效率,如果是计算,就不会提高效率。
yield:能实现协程,但是不能提高效率。
greenlet:需要pip3 install greenlet
from greenlet import greenlet
g1=greenlet()
g1.switch()
2. gevent()
安装:pip3 install gevent
from gevent import monkey
monkey.patch_all() 这两行代码写到文件的首部
import gevent
gevent.sleep(2)
g1=gevent.spawn(eat,name='egon')
g2=gevent.spawn(play,'alex')
g1.join()
g2.join()
3. 利用gevent写一个socket连接。
单线程实现并发连接
4. socketserver模块
基于TCP
import socketserver
class MyTCPhandler(socketserver.BaseRequestHandler): #通信
def hanler(self):
while True:
data=self.request.recv(1024)
self.request.send(data.upper())
if __name__=='__main__':
socketserver.ForkingTCPServer #windows不能使用多进程模式
s=socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyTCPhandler)
s.server_forever()
基于UDP:
import socketserver
class MyTCPhandler(socketserver.BaseRequestHandler): #通信
def hanler(self):
client_data=self.request[0]
self.request[1].sendto(client_data.upper(),self.client_address)
if __name__=='__main__':
socketserver.ForkingTCPServer #windows不能使用多进程模式
s=socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyTCPhandler)
s.server_forever()
5. 数据库介绍及mysql安装
yum install mysql_server mysql -y
6. mysql的基本管理
mysql -h127.0.0.1 -uroot -p
mysqld --install
设置密码:
mysqladmin -uroot -p password "123";
破解密码:
net stop mysql
mysqld --skip-grant-tables 跳过授权表
mysql -uroot -p
update mysql.user set password=password('') where user='root' and host='localhost';
flush privileges;
修改my.ini配置文件。
在mysqld里面设置:skip-grant-tables
[mysqld]
[mysql] mysql自带的客户端
user='root'
password='123'
[client] 所有的客户端
user='root'
password='123'
建立账号:
grant select,update on *.* to
7. mysql的基本sql语句
库 增删改查
表 增删改查
记录 增删改查
8. mysql的存储引擎
innodb
9. mysql的数据类型:
数字类型:
整型:默认有符号,指定无符号:unsigned
int
tinyint
bigint
浮点型
float
double
decimal
字符类型
char
varchar
时间类型
date
time
datetime
timestamp
year
枚举类型
enum
setn
Python学习笔记十一的更多相关文章
- python 学习笔记十一 SQLALchemy ORM(进阶篇)
SqlAlchemy ORM SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据A ...
- Python学习笔记十一:模块
标准库(内置模块) time与datetime 模块 时间表示方式 1.时间戳 2.格式化的字符串 3.元组形式 时间戳就是一个秒数 x=time.time(),从1970年1月1日0时0分0秒到现在 ...
- python学习笔记十一:操作mysql
一.安装MySQL-python # yum install -y MySQL-python 二.打开数据库连接 #!/usr/bin/python import MySQLdb conn = MyS ...
- python学习笔记(十一)redis的介绍及安装
一.redis简介 1.redis是一个开源的.使用C语言编写的.支持网络交互的.可基于内存也可持久化的Key-Value数据库. 2.redis的官网地址,非常好记,是redis.io. ...
- python学习笔记(十一)-python程序目录工程化
在一个程序当中,一般都会包含文件夹:bin.conf.lib.data.logs,以及readme文件. 所写程序存放到各自的文件夹中,如何进行串联? 首先,通过导入文件导入模块方式,引用其他人写好的 ...
- Python学习笔记(十一)
Python学习笔记(十一): 生成器,迭代器回顾 模块 作业-计算器 1. 生成器,迭代器回顾 1. 列表生成式:[x for x in range(10)] 2. 生成器 (generator o ...
- Python学习笔记,day5
Python学习笔记,day5 一.time & datetime模块 import本质为将要导入的模块,先解释一遍 #_*_coding:utf-8_*_ __author__ = 'Ale ...
- python3.4学习笔记(十一) 列表、数组实例
python3.4学习笔记(十一) 列表.数组实例 #python列表,数组类型要相同,python不需要指定数据类型,可以把各种类型打包进去#python列表可以包含整数,浮点数,字符串,对象#创建 ...
- Go语言学习笔记十一: 切片(slice)
Go语言学习笔记十一: 切片(slice) 切片这个概念我是从python语言中学到的,当时感觉这个东西真的比较好用.不像java语言写起来就比较繁琐.不过我觉得未来java语法也会支持的. 定义切片 ...
随机推荐
- My Todo-List
有些事情要明着写出来才会去干. 这里是一个不断更新的Todo-List,大致按照重要度和列出时间排序. 主要着眼短期计划,其中的大部分事务应该在一周内解决,争取不做一只鸽子. 填好模板库的坑. 学习树 ...
- Java第二次实训
package fsafsa; import java.util.Scanner; public class fafas { public static void main(String[] args ...
- 关于package,import,和“找不到可以加载的主类”报错之间的关系
正在回顾java基础 目录结构如下: 一 以下代码,进入Example所在的文件夹, javac和java都不会报错 public class Example{ public static void ...
- angular 官网英雄案例 报错整理
1.导入of 报错 import { of } from 'rxjs/observable/of'; 2. 服务注入报错 在app.module.ts引入 3.使用angular-in-memory- ...
- Redis-Cluster操作命令大全
今天整理下redis-cluster操作命令 一.Cluster操作命令 CLUSTER INFO 打印集群的信息 CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相 ...
- 老男孩Python全栈学习 S9 日常作业 008
1.有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合 pythons={'alex','egon','yuanhao','wupeiq ...
- Presto服务发现(Discovery Service)
Presto 集群配置不管是coordinator还是worker配置项中都有一项discovery.uri,这个是一个比较核心的东西,简单来说就是服务发现的地址. coordinator和worke ...
- jvm 字节码执行 (二)动态类型支持与基于栈的字节码解释执行
动态类型语言 动态类型语言的关键特征是它的类型检查的主体过程是在运行期而不是编译期. 举例子解释“类型检查”,例如代码: obj.println("hello world"); 假 ...
- VS.NET C# 开发ArcGis插件无法进入断点调试的解决方法
有人问起,想起来码到这儿,再有人问可以直接给链接参考. 以10.1为例,因为博主一直用的它,所以只能是这个例.其他版本如有不同,那就不同吧. 首先,得确认调试时启动了外部程序 在项目属性→调试→启动外 ...
- Linux 日志文件管理——限制大小
设计思路: 1 用一个INI配置文件管理日志目录,日志文件限制的大小,特殊的日志名,特殊日志的大小限制. 2 读取INI文件中的所有信息:每一个日志目录对应的大小限制,每一个特殊日志对应的大小限制.如 ...