python自动化开发-4】的更多相关文章

python自动化开发学习 进程, 线程, 协程   前言 在过去单核CPU也可以执行多任务,操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换任务2,任务2执行0.01秒,在切换到任务3,这样反复执行下去,表面上看每个任务都是交替执行的,但是由于CPU速度太快,让我们觉得所有任务是在同时执行一样.真正的并行执行多任务只能在多核CPU上,但是由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动把多任务轮流调度到每个核心上运行. 多任务的实现有三种方式: 多进程模式 多线程模式 多…
python自动化开发学习 I/O多路复用   一. 简介 socketserver在内部是由I/O多路复用,多线程和多进程,实现了并发通信.IO多路复用的系统消耗很小. IO多路复用底层就是监听socket对象内部是否有变化,是否在收发消息,Python中select模块提供了select poll epoll 三种方式来实现IO多路复用,支持不同的操作系统. windows : 提供select Mac : 提供select Linux : 提供select, poll, epoll (1)…
1.Python简介 Python创始人  Guido Van Rossum,人称"龟叔",1989年圣诞节期间,为了在阿姆斯特丹打发时间,开发的一个新的脚本解释程序 作为ABC语言的一种继承.Python是一门简明并强大的面向对象的编程语言. WEB开发.软件开发.科学运算.大数据分析.自动化运维等方面广泛使用 主流语言的区别和特点 C\C++:学习成本高,学习周期长,偏系统底层,在开发硬件驱动.嵌入式.游戏引擎开发等领域有广泛的应用 Java:目前使用最广泛的编程语言,第一个跨平台…
1.python简介 python是一门简明并且强大的面向对象的开发语言,已经在WEB开发,软件开发,科学计算,大数据分析,自动化运维等领域得到了广泛的应用. 注意:所有测试均已python3为主,与python2与语法上可能略有不同,但是差别不是很大,有些情况下,如有使用python2调试程序的朋友自行调整相关代码. 2.python的优点 python和Java的使用领域几乎一样广泛,但是开发效率要高于Java,并且学习的成本比较低,在科学运算,数据分析,网站开发,爬虫开发,云计算,自动化运…
你是否做了正确的决定? 深圳首期周未班的同学们大家好,我是Alex, 老男孩教育的联合创始人,Python项目的发起人,51CTO学院连续2届最受学员喜爱的讲师,中国最早一批使用Python的程序员,当然还有一堆头衔,看过我视频的人都知道我喜欢吹nb啦哈, 今天要收着点,讲正事.本来下面的话要在深圳当面跟你们说,但实在北京这边太多事抽不开,只能以这种方式表达了. 2009年我第一次接触Python,源于我做为移动飞信的第一名Linux工程师,一入职就要面临上千台服务器上的应用代码集中部署的问题,…
1.python的数据类型之列表 列表是Python开发语言中最常见的数据类型之一,通过列表可以实现对数据的增删改等常用操作. 列表的定义:例子 names = ["Lucy","Lily","jack"] 列表的常用功能 1)取出列表中的元素:例子 取出列表的第二个元素:通过下标的方式,下标从0开始计数. 取出列表的最后一个元素: 2)切片:例子 注意列表在切片的时候是包头不包尾. names = ["Lucy","…
今日概要: 1.form表单进阶 2.中间件 3.缓存 4.信号 5.admin后台 上节课回顾 FBV,CBV 序列化 - Django内置 - json.dumps(xxx,cls=) Form验证 - 类 class LoginForm(Form): user = fields.CharField(...) email = fields.EmailField(...) email = fields.ChoiceField( choices=[()..] ) - 添加用户: GET form…
今日概要: 1.bootstrap使用 2.栅格系统 3.orm简介 4.路由系统 5.mvc和mtv模式 6.django框架 1.bootstrap的引用方式 1.Bootstrap 专门构建了免费的 CDN 加速服务,访问速度更快.加速效果更明显.没有速度和带宽限制.永久免费 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <me…
今日概要: 1.初识mysql 2.MySQL的增删改查 3.主键.外键 4.组合和分组 一.数据库的由来 1.什么是数据库? 数据的仓库,在ATM,购物车中存储数据为目录,称为数据库 1.数据以表格的形式出现 2.每行为各种记录名称 3.每列为记录名称所对应的数据域 4.许多的行和列组成一张表单 5.若干的表单组成database 2.数据库主要有哪些功能?   a.将数据保存到文件或者内存   b.接收特定的命令,然后对文件进行相应的操作       PS:如果有了以上软件,无须自己再去创建…
今日概要 1.线程 2.协程 3.socketserver 4.基于udp的socket(见第八节) 一.线程 1.threading模块 第一种方法:实例化 import threading import time #第一种方法实例化 def sayhi(num): print('running on num %s' %(num)) time.sleep(3) if __name__ == '__main__': t1 = threading.Thread(target=sayhi,args=…
今日概要: 1.异常处理使用 2.进程 3.paramiko模块使用 一.异常处理 1.常见的错误异常 #错误异常一 print(a) #NameError #错误异常二 int('sdadsds') #ValueError #错误异常三 a = {'a':1} a['b'] #KeyError #错误异常四1/0 #ZeroDivisionError 2.解释器返回错误异常内容如下: 3.在python中不同的异常可以有不同种类型(python中统一了类于类型,类型即类),去标识,不同的类对象…
今日概要: 1.常用模块 - os模块 - random模块 - shutil模块 - hashlib模块 - pickle/json模块 - shelve模块 - configparser模块 - subprocess模块 - xml模块 - logging模块 - sys模块 - re模块 - time模块 - importlib模块 -base64模块 2.软件开发规范 3.初识面向对象 一.os模块 常规用法: os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路…
本节内容 1.  RESTful 简介 2.  RESTful 设计指南 3.  Django REST Framework 最佳实践 4.  理论拓展与开放平台 5.  API文档化与测试 一  RESTful 简介 传统理解,软件和网络是两个不同的领域,很少有交集:软件开发主要针对单机环境,网络则主要研究系统之间的通信 互联网的兴起,使得两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件 网站即软件,这种“互联网软件”采用客户端/服务器模式,建立在分布式体系上,通过互联网通…
Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', passwd='1234', host='localhost') cursor = db.cursor() cursor.…
本节内容 一.什么是web框架 二.MVC和MTV视图 三.Django基本命令 四.路由配置系统 五.编写视图 六.Template 七.ORM 一.什么是web框架 对于所有的web应用,本质上其实就是一个socket服务端,用户的浏览器就是一个socket客户端 #!/usr/bin/env python #coding:utf-8 import socket def handle_request(client): buf = client.recv(1024) client.send("…
本节内容 一.线程进程介绍 二. 线程 1.线程基本使用 (Threading) 2.线程锁(Lock.RLock) 3.信号量(Semaphore) 4.事件(event) 5.条件(Condition) 6.定时器 (Timer) 7.线程池 (ThreadPoolExecutor) 三.进程 1.进程基本使用 2.进程数据共享 3.进程池 四.协程 一.线程进程介绍 1. 工作最小单元是线程 2. 应用程序 -> 至少有一个进程 -> 至少有一个线程 3. 应用场景: IO密集型:线程…
本节内容 1.操作系统发展史 2.进程和线程 3.Python threading 模块 一.操系统发展史 手工操作(无操作系统) 1946年第一台计算机诞生--20世纪50年代中期,还未出现操作系统,计算机工作采用手工操作方式. 手工操作程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存, 接着通过控制台开关启动程序针对数据运行:计算完毕,打印机输出计算结果:用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机. 手工操作方式两个特点: (1…
本节内容 1.编程范式 面向过程编程 面向对象编程 2.面向对象编程介绍 类的语法 类与实例内存分配 构造方法 自定义方法 3.面向对象特性 一.编程范式 编程是程序员 用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种不同的方式, 对这些不同的编程方式的特点进行归纳总结得出来的编程方式类别,即为编程范式. 不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的…
本节内容 一.装饰器导引 1.函数对象特性 2.扩展业务功能需求 3.各种解决方案 二.装饰器解析 1.装饰器基本概念 2.无参装饰器解析 一.装饰器导引 1.函数对象特性 #### 第一波 #### def foo(): # 表示定义函数 print('foo') # 表示函数体 foo #表示是函数名,指向函数体的地址 foo() #表示执行foo函数 #### 第二波 #### def foo(): print('foo') foo = lambda x: x + 1 foo() # 执行…
一.拾遗主题 1.变量 理解变量在计算机内存中的表示 >>> a = "ABC" Python解释器干了两件事情: 在内存中创建了一个'ABC'的字符串: 在内存中创建了一个名为a的变量,并把它指向'ABC' 可以把一个变量name1赋值给另一个变量name2,这个操作实际上是把变量name2指向变量name1所指向的数据,例如下面的代码: >>> name1 = "Jonathan" >>> name2 = n…
阅读目录 第一篇:python入门 第二篇:字符编码.文件处理 第三篇:函数 第四篇:迭代器.生成器.三元表达式.列表生成式 第五篇:模块.包.软件开发规范 第六篇:日志模块 第七篇:常用模块 第八篇:面向对象 第九篇:异常处理 第十篇:网络编程 第十一篇:并发编程 第十二篇:MySQL系列 第十三篇:前端之Javascript基础 第十四篇:Django学习 更新中...…
一.变量 变量定义:Variables are used to store infomation to referrenced and manipulated in a computer program. 用于存储程序运行的中间运算结果 标识 存储 变量在程序中用一个变量名表示 变量名必须是大小写英文.数字和_的组合,且不能用数字开头 对大小写敏感 推荐小驼峰命名法,如myFirstName, myLastName 关键字不能声明为变量 在Python中,等号 = 是赋值语句,可以把任意数据类型…
1.编码 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.解决思路:数字与符号建立一对一映射,用不同数字表示不同符号. ASCII(American Standard Code for Information Interchange, 美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言. ASCII码使用指定的7位或8位二进制数组合来表示128 或256种可能的字符 大小规则1) 数字0-9比字母要小, 如"7" <…
计数器的作用可以在死循环中,符合条件的情况下做自动退出中断 #!/usr/bin/env python # _*_ coding: utf-8 _*_ # @Time : 2017/3/14 11:23 # @Author : eason # @File : guest_lucknum.py.py lucky_num = 19 input_num = -1 guset_num = 0 while guset_num<3: input_num = int(raw_input("Input t…
1.Python与其他语言对比 - C语言的解释方式  代码-->机器码-->计算机 - python,java,php等高级语言的解释方式  代码-->字节码-->机器码-->计算机 2.python的编码 - ascii 1.ascii只支持英文256个,不支持中文 - unicode(万国码) 1.unicode至少16位,中文和英文都至少16位 - utf-8 1.utf-8中文3个字节,24位,英文1字节,8位 - gbk/gbk2312 1.gbk是中文2个字节…
今日内容概要 1.高性能相关 2.scrapy初识 上节回顾: 1. Http协议 Http协议:GET / http1.1/r/n...../r/r/r/na=1 TCP协议:sendall("GET / http1.1/r/n...../r/r/r/na=1") 2. 请求体 GET: GET / http1.1/r/n...../r/r/r/n POST: POST / http1.1/r/n...../r/r/r/na=1&b=2 POST / http1.1/r/n.…
今日概要: 1.爬汽车之家的新闻资讯 2.爬github和chouti 3.requests和beautifulsoup 4.轮询和长轮询 5.django request.POST和request.body 一.HTTP知识扫盲 1.http的get请求 是没有请求体,所有的参数都放在请求头的url里 2.http的post请求 将请求内容放到请求体里 3.http = 请求头+请求体 响应头+响应体 4.http是无状态请求,一个请求,一次响应就会结束 二.爬取汽车之家的新闻页 #!/usr…
今日概要: 1.related_name和related_query_name的区别 2.through_fields的用途 3.django的事务提交 4.点赞的动画效果 5.多级评论的原理 6.上传文件 7.request.post用法 8.如果保留原来的页面 一.related_name和related_query_name的区别 related_name,用于定义反向关联时候,使用的字段名称 related_query_name 用于反向查询related_query_name + _s…
1.CBV和FBV的用法 2.序列化用法 3.form表单 一.CBV和FBV 1.cbv是 class based view(基于类),fbv是function based view(基于函数) 2.cbv基于dispatch进行反射,get获取,post提交 3.应用场景:登录认证(继承dispatch,在dispatch里做session验证) CBV第一种方式继承 1.单继承 扫盲:(继承的时候,一定要清楚self是哪个类实例化出来的对象,下例,self为B实例化的对象,任何属性优先从自…
今日概要: 1.ORM一对多,多对多 2.正向查询,反向查询 3.聚合查询与分组查询 4.F查询和Q查询 5.ajax 6.分页器 一.ORM补充: django在终端打印sql语句设置: LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': {…