随着互联网数据的增加,如何高效地利用大数据已经成为企业需要面对的首要问题,这个问题就涉及了数据显示、数的存储和数据分析,这三个方向是否有成熟的模块呢?答案是有的,Python在这三个方向都有非常成熟的模块,这些模块已经大量使用在企业级应用中。方便了程序员的学习,这些模块有非常完善的开发文档。笔者用Python可以很方便地处理百万级别的大数据,而且Python在Web应用开发的前端和后端都有卓越的表现。考虑到市场上这方面的书籍还比较少,作者也很乐意去创作一本关于Python全栈开发的书,于是本书就应运而生。本书适合对Python感兴趣,特别是想提升全栈开发能力的读者阅读。
全栈工程师,也称为全端工程师(同时具备前端和后台能力),是指掌握多种技能,并能利用多种技能独立完成产品的人。Python全栈工程师,是指在精通Python编程语言的前提下,对于其他上下游的技术也有足够的了解和掌握。本书上下游的技术涉及数据传输、数据存储、数据分析和数据可视化等方面的知识。本书以实践的方式,将这一系列的领域及理论知识结合到一起,帮助读者构建全栈开发的知识体系,并辅以精益及敏捷的思想,来一步步开发Web 应用,让读者不只学会编码,还在学完后具备真实项目的经验。
王硕、刘友祝和张云河在人工智能、大数据分析及新技术开发等方面有丰富的实战经验。擅长J2EE(JSP/Servlet、JDBC、Struts2、Spring、Hibernate)项目开发、Python(程序GUI、数据分析、网络爬虫、机器学习)项目开发,以及JavaScript、HTML 5和数据库技术,是极宽Top开源团队的核心成员。《PyQt5快速开发与实战》作者(电子工业出版社出版)。
初识Python语言 1
第2
Python基础篇 20
2.1 变量 21
2.2 标准数据类型 22
2.2.1 数字( Number ) 22
2.2.2 字符串(String) 24
2.2.3 列表(List ) 28
2.2.4 元组(Tuple) 31
2.2.5 字典(Dictionary) 33
2.2.6 集合(Set) 35
2.3 标识符 36
2.4 行和缩进 37
2.5 运算符和表达式 38
2.5.1 算数运算符 38
2.5.2 比较运算符 38
2.5.3 逻辑运算符 39
2.5.4 成员运算符 40
2.6 条件控制 41
2.7 循环语句 42
2.7.1 while 循环 42
2.7.2 for 语句 43
2.7.3 使用枚举遍历序列 44
2.8 函数 45
2.8.1 函数的定义和调用 45
2.8.2 函数中的文档 46
2.8.3 默认参数 47
2.8.4 不定长参数 47
2.8.5 range()函数 48
2.8.6 函数作为参数传递 50
2.9 文件 51
2.9.1 操作文件 51
2.9.2 使用 with语句 56
2.9.3 电子表格 57
2.10 面向对象 59
2.10.1 类与对象的定义 59
2.10.2 私有属性和方法 61
2.10.3 继承 63
2.10.4 静态方法 67
2.10.5 魔法方法和特殊属性 68
2.10.6 可调用对象 69
2.11 错误和异常 70
2.11.1 错误 70
2.11.2 异常 71
2.11.3 处理异常 72
2.11.4 打印异常信息 74
2.11.5 自定义异常 74
2.12 模块 75
2.12.1 导入模块 75
2.12.2 模块的__name__属性 77
2.12.3 模块路径 79
2.12.4 包 80
2.13 常用模块 82
2.13.1 os模块 82
2.13.2 time模块 85
第3章
Python高级篇 87
3.1 高级函数对象 88
3.1.1 lambda函数 88
3.1.2 map()函数 89
3.1.3 reduce()函数 90
3.1.4 迭代器(Iterator) 92
3.1.5 生成器(Generator) 95
3.1.6 装饰器(Decorator) 99
3.2 多线程 104
3.2.1 多线程介绍 104
3.2.2 线程模块 104
3.2.3 守护线程 107
3.2.4 优雅地停止线程 109
3.2.5 多线程的锁机制 112
3.2.6 本地线程变量 116
3.3 多进程 117
3.3.1 Linux平台下的多进程 118
3.3.2 跨平台的多进程 120
3.3.3 跨平台的多进程间通信 127
3.3.4 分布式进程 129
3.4 正则表达式 135
3.4.1 re.match函数 137
3.4.2 re.search函数 140
3.4.3 re.findall函数 141
3.5 JSON数据解析 142
3.5.1 JSON简介 142
3.5.2 Python处理JSON数据 144
3.5.3 自定义对象的序列化 146
3.6 存储对象序列化 148
3.6.1 序列化对象 148
3.6.2 反序列化对象 149
3.7 发送E-mail 150
3.7.1 发送简单邮件 152
3.7.2 发送HTML格式的邮件 154
3.7.3 发送带附件的邮件 155
第4章
使用Python操作数据库 158
4.1 操作MySQL数据库 159
4.1.1 MySQL简介 159
4.1.2 在Windows下安装MySQL 160
4.1.3 在Linux下安装MySQL 169
4.1.4 MySQL可视化工具 174
4.1.5 MySQL基础知识 177
4.1.6 Python操作MySQL 183
4.2 操作MongoDB数据库 192
4.2.1 MongoDB简介 192
4.2.2 安装MongoDB 193
4.2.3 MongoDB基本操作 199
4.2.4 MongoDB的集合 200
4.2.5 MongoDB的文档 202
4.2.6 使用Python操作MongoDB 206
4.3 操作Redis数据库 211
4.3.1 Redis简介 211
4.3.2 安装Redis 211
4.3.3 Redis开启远程访问 217
4.3.4 Redis可视化工具 217
4.3.5 Redis数据类型与操作 218
4.3.6 使用Python Redis模块 223
4.3.7 连接Redis服务器 224
4.3.8 操作string类型 225
4.3.9 操作hash类型 229
4.3.10 操作list类型 231
4.3.11 操作set类型 233
4.3.12 操作sorted set类型 235
4.3.13 其他操作 237
第5章
Python网络编程 238
5.1 网络编程的基本概念 239
5.1.1 网络基础知识 239
5.1.2 网络基本概念 240
5.1.3 网络传输协议 245
5.2 Python 3 网络编程 248
5.2.1 Socket()函数 248
5.2.2 TCP程序设计 250
5.2.3 UDP程序设计 254
5.2.4 Socket实现文件传输 255
5.2.5 多线程与网络编程 261
第6章
Python自动化运维 264
6.1 自动化运维简介 265
6.2 WebLogic简介 266
6.3 安装WebLogic 266
6.3.1 安装WebLoigc Server 267
6.3.2 配置域(Domain) 271
6.3.3 启动WebLogic Server 276
6.3.4 配置JDK环境变量 278
6.4 WebLogic部署和配置 280
6.4.1 启动WebLogic脚本工具(WLST) 280
6.4.2 通过网页部署Java Web应用 286
6.4.3 通过命令行部署工程 290
6.4.4 通过脚本部署Java Web应用 292
6.4.5 通过网页配置JNDI数据源 297
6.4.6 通过脚本配置JNDI数据源 307
6.5 Python在Linux运维中的常见应用 310
6.5.1 统计磁盘使用情况 311
6.5.2 统计内存使用情况 312
6.5.3 读取passwd文件中的用户名和
shell信息 313
6.5.4 统计Linux系统的平均负载 314
6.5.5 查看CPU信息 316
6.5.6 查看MySQL的慢日志
(slow-query-log) 319
6.5.7 监控MySQL的状态 321
6.6 psutil的使用 324
6.6.1 获取CPU信息 325
6.6.2 获取内存信息 326
6.6.3 获取磁盘信息 327
第7章