Python项目开发实战(第2版)

Python项目开发实战(第2版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [日] ,
2016-12
版次: 2
ISBN: 9787115438560
定价: 79.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 424页
正文语种: 简体中文
65人买过
  • 本书来自真正的开发现场,是BePROUD公司众多极客在真实项目中的经验总结和智慧结晶。作者从Python的环境搭建开始讲起,介绍了Web应用的开发方法、项目管理及审查、测试与高效部署、服务器调试等内容,尽可能网罗了Python项目开发流程中的方方面面,有助于开发者建立有序生产环境,提高开发效率,让编程事半功倍。此外,在本书中Python仅仅是一个载体,很多知识点在非Python下也适用。 日本BeProud股份有限公司,BeProud是一家专注于Python开发的公司,因云集了众多杰出的Python工程师而闻名于日本国内。多年来在Python开发上硕果累累,以其精湛的技术水平,得到了客户及业界人士的认可和好评。 第1部分 Python开发入门 1
    第1章 Python入门 2
    1.1 安装Python 2
    1.1.1 安装deb包 3
    1.1.2 安装第三方包 4
    1.1.3 virtualenv的使用方法 5
    1.1.4 多版本Python的使用 7
    1.2 安装Mercurial 9
    1.2.1 Mercurial概述 10
    1.2.2 安装Mercurial 10
    1.2.3 创建版本库 11
    1.2.4 文件操作 12
    1.3 编辑器与辅助开发工具 14
    1.3.1 编辑器 14
    1.3.2 开发辅助工具 20
    1.4 小结 22
    第2章 开发Web应用 24
    2.1 了解Web应用 24
    2.1.1 Web应用是什么 24
    2.1.2 Web应用与桌面应用的区别 25
    2.1.3 Web应用的机制 25
    2.2 前置准备 28
    2.2.1 关于Flask 28
    2.2.2 安装Flask 28
    2.3 Web应用的开发流程 29
    2.4 明确要开发什么应用 30
    2.4.1 留言板应用的需求 30
    2.4.2 明确必备的功能 30
    2.4.3 明确必备的页面 31
    2.5 页面设计 31
    2.5.1 确定成品页面的形式 31
    2.5.2 编写HTML和CSS 32
    2.6 实现功能 37
    2.6.1 保存留言数据 37
    2.6.2 获取已保存的留言列表 38
    2.6.3 用模板引擎显示页面 39
    2.6.4 准备评论接收方的URL 42
    2.6.5 调整模板的输出 43
    2.7 查看运行情况 45
    2.8 小结 47
    第3章 Python项目的结构与包的创建 48
    3.1 Python项目 48
    3.2 环境与工具 49
    3.2.1 用virtualenv搭建独立环境 49
    3.2.2 用pip安装程序包 55
    3.2.3 小结 62
    3.3 文件结构与发布程序包 62
    3.3.1 编写setup.py 62
    3.3.2 留言板的项目结构 64
    3.3.3 setup.py与MANIFEST.in——设置程序包信息与捆绑的文件 65
    3.3.4 setup.py——创建执行命令 69
    3.3.5 python setup.py sdist——创建源码发布程序包 71
    3.3.6 提交至版本库 71
    3.3.7 README.rst——开发环境设置流程 73
    3.3.8 变更依赖包 75
    3.3.9 通过requirements.txt固定开发版本 77
    3.3.10 python setup.py bdist_wheel——制作用于wheel发布的程序包 78
    3.3.11 上传到PyPI并公开 79
    3.3.12 小结 85
    3.4 小结 86
    第2部分 团队开发的周期 87
    第4章 面向团队开发的工具 88
    4.1 问题跟踪系统 88
    4.1.1 Redmine 88
    4.1.2 安装Redmine 89
    4.1.3 Redmine的设置 91
    4.1.4 插件 93
    4.2 版本控制系统 94
    4.2.1 Mercurial与Redmine的联动 94
    4.2.2 用于生成版本库的插件 95
    4.3 聊天系统 97
    4.3.1 Slack 97
    4.3.2 Slack的特点 98
    4.3.3 Slack做不到的事 101
    4.3.4 Slack的注册 102
    4.4 对团队开发有帮助的工具 102
    4.4.1 Dropbox 102
    4.4.2 Google Drive 102
    4.5 小结 103
    第5章 项目管理与审查 104
    5.1 项目管理与问题的区分使用 104
    5.1.1 项目管理的前置准备工作 104
    5.1.2 创建问题 105
    5.1.3 整理问题 107
    5.1.4 分割问题 107
    5.2 问题模板 108
    5.2.1 安装插件 108
    5.2.2 问题模板的使用方法 109
    5.2.3 Global Issue Templates 111
    5.2.4 问题模板示例 112
    5.3 问题驱动开发 114
    5.3.1 别急着敲代码,先建问题 114
    5.3.2 创建与问题编号同名的分支 115
    5.3.3 让发布与分支相对应 115
    5.3.4 分支的合并 116
    5.4 审查 117
    5.4.1 为什么需要审查 117
    5.4.2 审查委托:代码审查篇 118
    5.4.3 审查委托:作业审查篇 119
    5.4.4 实施审查:代码审查篇 120
    5.4.5 实施审查:作业审查篇 123
    5.5 小结 123
    第6章 用Mercurial管理源码 125
    6.1 Mercurial版本库的管理与设置 125
    6.1.1 服务器上的Uinx用户群设置 125
    6.1.2 创建版本库 126
    6.1.3 hgrc的设置 127
    6.1.4 使用设置好的版本库 127
    6.1.5 使用hgweb建立简易中央版本库 127
    6.2 灵活使用“钩子” 128
    6.2.1 钩子功能的设置方法 129
    6.2.2 尝试钩子脚本 129
    6.2.3 钩子事件 130
    6.2.4 钩子功能的执行时机 131
    6.2.5 编写钩子脚本 134
    6.3 分支的操作 136
    6.4 关于合并 137
    6.4.1 未发生冲突的合并 138
    6.4.2 合并时发生冲突以及用文本编辑器解决冲突的方法 140
    6.4.3 合并的类型与冲突 143
    6.4.4 用GUI的合并工具进行合并 144
    6.5 GUI客户端 147
    6.5.1 GUI客户端的介绍 147
    6.5.2 GUI客户端的优点 149
    6.5.3 GUI客户端的缺点 151
    6.6 考虑实际运用的BePROUD Mercurial Workflow 152
    6.6.1 概述 152
    6.6.2 背景 152
    6.6.3 版本库的结构 153
    6.6.4 提交源码 154
    6.6.5 提交设计 156
    6.6.6 分支的合并 157
    6.6.7 集成分支 158
    6.7 小结 160
    第7章 完备文档的基础 162
    7.1 要记得给项目写文档 162
    7.1.1 写文档时不想做的事 162
    7.1.2 什么样的状态让人想写文档 164
    7.2 Sphinx的基础与安装 165
    7.2.1 Sphinx的安装 166
    7.2.2 reStructuredText入门 167
    7.2.3 用Sphinx写结构化文档的流程 169
    7.2.4 Sphinx扩展 174
    7.3 导入Sphinx可解决的问题与新出现的问题 175
    7.3.1 由于是纯文本,所以能在平时用的编辑器上写文档 176
    7.3.2 信息与视图相分离,所以能集中精神编辑内容,不用顾虑装饰等外观问题 176
    7.3.3 可根据一个源码输出PDF等多种格式 179
    7.3.4 通过结构化,文档可分成几个文件来写 180
    7.3.5 能用Mercurial等轻松实现版本管理 181
    7.3.6 API参考手册与程序的管理一体化 182
    7.3.7 通过Web浏览器共享 184
    7.3.8 导入Sphinx后仍存在的问题 185
    7.4 文档集的创建与使用 186
    7.4.1 什么是文档集 186
    7.4.2 项目所需文档的一览表 187
    7.4.3 面向项目组长、经理 187
    7.4.4 面向设计者 189
    7.4.5 面向开发者 189
    7.4.6 面向客户 189
    7.5 小结 190
    第8章 模块分割设计与单元测试 191
    8.1 模块分割设计 191
    8.1.1 功能设计 191
    8.1.2 构成Web应用的组件 192
    8.1.3 组件设计 194
    8.1.4 模块与程序包 195
    8.2 测试 197
    8.2.1 测试的种类 197
    8.2.2 编写单元测试 198
    8.2.3 从单元测试中剔除环境依赖 209
    8.2.4 用WebTest做功能测试 215
    8.3 通过测试改良设计 219
    8.4 推进测试自动化 221
    8.4.1 用tox自动生成执行测试的环境 221
    8.4.2 可重复使用的测试环境 223
    8.5 小结 223
    第9章 Python封装及其运用 224
    9.1 使用程序包 224
    9.1.1 程序包的版本指定 224
    9.1.2 从非PyPI服务器安装程序包 226
    9.1.3 程序包的发布格式 228
    9.1.4 生成wheelhouse的方法 230
    9.1.5 从wheelhouse安装 231
    9.2 巧用程序包 232
    9.2.1 私密发布 232
    9.2.2 巧用requirements.txt 232
    9.2.3 requirements.txt层级化 233
    9.2.4 为部署和CI+tox准备的requiremests 234
    9.2.5 通过requirements.txt指定库的版本 235
    9.3 小结 236
    第10章 用Jenkins持续集成 237
    10.1 什么是持续集成 237
    10.1.1 持续集成的简介 237
    10.1.2 Jenkins简介 239
    10.2 Jenkins的安装 239
    10.2.1 安装Jenkins主体程序 239
    10.2.2 本章将用到的Jenkins插件 240
    10.3 执行测试代码 241
    10.3.1 让Jenkins运行简单的测试代码 241
    10.3.2 添加Job 242
    10.3.3 Job的成功与失败 244
    10.4 测试结果输出到报告 246
    10.4.1 安装pytest 246
    10.4.2 调用pytest命令 246
    10.4.3 根据pytest更改Jenkins的设置 246
    10.5 显示覆盖率报告 247
    10.5.1 安装pytest-cov 248
    10.5.2 从pytest获取覆盖率 248
    10.5.3 读取覆盖率报告 248
    10.6 执行Django的测试 250
    10.6.1 安装Python模块 250
    10.6.2 Django的调整 251
    10.6.3 示例代码 251
    10.6.4 Jenkins的调整 255
    10.6.5 “构建后操作”选项卡的设置 257
    10.7 通过Jenkins构建文档 260
    10.7.1 安装Sphinx 261
    10.7.2 在Jenkins添加Job 261
    10.7.3 Sphinx构建发出警告时令Job失败 261
    10.7.4 查看成果 262
    10.7.5 通过Task Scanner Plugin管理TODO 263
    10.7.6 Task Scanner Plugin的设置示例 264
    10.8 Jenkins进阶技巧 265
    10.8.1 好用的功能 265
    10.8.2 进一步改善 267
    10.9 小结 268
    第3部分 服务公开 269
    第11章 环境搭建与部署的自动化 270
    11.1 确定所需环境的内容 270
    11.1.1 网络结构 270
    11.1.2 服务器搭建内容的结构化 272
    11.1.3 用户的设置 273
    11.1.4 选定程序包 274
    11.1.5 中间件的设置 277
    11.1.6 部署 280
    11.2 用Ansible实现自动化作业 282
    11.2.1 Ansible简介 282
    11.2.2 文件结构 287
    11.2.3 执行Ansible 288
    11.2.4 与最初确定的结构相对应 288
    11.2.5 将各步骤Ansible化 289
    11.2.6 整理Ansible的执行环境 295
    11.3 小结 296
    第12章 应用的性能改善 298
    12.1 Web应用的性能 298
    12.1.1 Web应用面对大量集中请求时会产生哪些问题 298
    12.1.2 针对高负荷的对策 299
    12.2 评估留言板应用的性能 300
    12.2.1 什么是应用的性能 300
    12.2.2 安装ApacheBench 300
    12.2.3 用ApachBench评估性能 301
    12.3 gunicorn简介 303
    12.3.1 安装gunicorn 304
    12.3.2 在gunicorn上运行应用 304
    12.4 nginx简介 306
    12.4.1 安装nginx 306
    12.4.2 检测nginx的性能 307
    12.5 在nginx和gunicorn上运行应用 310
    12.5.1 gunicorn的设置 310
    12.5.2 nginx的设置 310
    12.5.3 评估nginx+gunicorn的性能 311
    12.5.4 性能比较 312
    12.6 小结 313
    第4部分 加速开发的技巧 315
    第13章 让测试为我们服务 316
    13.1 认识现状:测试的客观环境 316
    13.2 将测试导入开发各个阶段 317
    13.2.1 文档的测试(审查) 317
    13.2.2 测试设计的编写方法(输入与输出) 320
    13.2.3 测试的实施与测试阶段的轮换(做什么,做多少) 323
    13.3 小结:测试并不可怕 326
    第14章 轻松使用Django 327
    14.1 Django简介 327
    14.1.1 Django的安装 327
    14.1.2 Django的架构 327
    14.1.3 Django的文档 331
    14.2 数据库的迁移 331
    14.2.1 什么是数据库的迁移 331
    14.2.2 Django的迁移功能 332
    14.3 fixture replacement 339
    14.3.1 什么是测试配置器 339
    14.3.2 几种不便使用默认配置器的情况 342
    14.3.3 如何使用factory_boy 343
    14.3.4 消除“不便使用默认配置器的情况” 345
    14.4 Django Debug Toolbar 346
    14.5 小结 353
    第15章 方便好用的Python模块 355
    15.1 轻松计算日期 355
    15.1.1 日期计算的复杂性 355
    15.1.2 导入dateutil 357
    15.2 简化模型的映射 359
    15.2.1 模型映射的必要性 359
    15.2.2 映射规则的结构化与重复利用 360
    15.2.3 导入bpmappers 363
    15.2.4 与Django联动 366
    15.2.5 编写JSON API 367
    15.3 图像处理 369
    15.3.1 安装Pillow 369
    15.3.2 图像格式转换 371
    15.3.3 改变图像尺寸 372
    15.3.4 剪裁图像 374
    15.3.5 对图像进行滤镜处理 375
    15.4 数据加密 377
    15.4.1 安装PyCrypto 377
    15.4.2 通用加密系统的加密及解密 377
    15.4.3 公钥加密系统(RSA)的加密与解密 378
    15.5 使用Twitter的API 382
    15.5.1 导入tweepy 382
    15.5.2 添加应用与获取用户密钥 382
    15.5.3 获取访问令牌 385
    15.5.4 调用Twitter API 385
    15.5.5 编写用Twitter认证的系统 387
    15.6 使用REST API 393
    15.6.1 REST简介 394
    15.6.2 导入Requests 394
    15.6.3 导入测试服务器 394
    15.6.4 发送GET请求 396
    15.6.5 发送POST请求 397
    15.6.6 发送JSON格式的POST请求 398
    15.6.7 使用GET/POST之外的HTTP方法 399
    15.7 小结 400
    附录 401
    附录A VirtualBox的设置 402
    A.1 安装VirtualBox 402
    A.2 新建虚拟机 403
    A.3 备份虚拟机 404
    附录B OS(Ubuntu)的设置 407
    B.1 安装Ubuntu 407
    B.2 SSH的设置 417
    B.3 中文的设置 419
    B.4 添加用户 419
  • 内容简介:
    本书来自真正的开发现场,是BePROUD公司众多极客在真实项目中的经验总结和智慧结晶。作者从Python的环境搭建开始讲起,介绍了Web应用的开发方法、项目管理及审查、测试与高效部署、服务器调试等内容,尽可能网罗了Python项目开发流程中的方方面面,有助于开发者建立有序生产环境,提高开发效率,让编程事半功倍。此外,在本书中Python仅仅是一个载体,很多知识点在非Python下也适用。
  • 作者简介:
    日本BeProud股份有限公司,BeProud是一家专注于Python开发的公司,因云集了众多杰出的Python工程师而闻名于日本国内。多年来在Python开发上硕果累累,以其精湛的技术水平,得到了客户及业界人士的认可和好评。
  • 目录:
    第1部分 Python开发入门 1
    第1章 Python入门 2
    1.1 安装Python 2
    1.1.1 安装deb包 3
    1.1.2 安装第三方包 4
    1.1.3 virtualenv的使用方法 5
    1.1.4 多版本Python的使用 7
    1.2 安装Mercurial 9
    1.2.1 Mercurial概述 10
    1.2.2 安装Mercurial 10
    1.2.3 创建版本库 11
    1.2.4 文件操作 12
    1.3 编辑器与辅助开发工具 14
    1.3.1 编辑器 14
    1.3.2 开发辅助工具 20
    1.4 小结 22
    第2章 开发Web应用 24
    2.1 了解Web应用 24
    2.1.1 Web应用是什么 24
    2.1.2 Web应用与桌面应用的区别 25
    2.1.3 Web应用的机制 25
    2.2 前置准备 28
    2.2.1 关于Flask 28
    2.2.2 安装Flask 28
    2.3 Web应用的开发流程 29
    2.4 明确要开发什么应用 30
    2.4.1 留言板应用的需求 30
    2.4.2 明确必备的功能 30
    2.4.3 明确必备的页面 31
    2.5 页面设计 31
    2.5.1 确定成品页面的形式 31
    2.5.2 编写HTML和CSS 32
    2.6 实现功能 37
    2.6.1 保存留言数据 37
    2.6.2 获取已保存的留言列表 38
    2.6.3 用模板引擎显示页面 39
    2.6.4 准备评论接收方的URL 42
    2.6.5 调整模板的输出 43
    2.7 查看运行情况 45
    2.8 小结 47
    第3章 Python项目的结构与包的创建 48
    3.1 Python项目 48
    3.2 环境与工具 49
    3.2.1 用virtualenv搭建独立环境 49
    3.2.2 用pip安装程序包 55
    3.2.3 小结 62
    3.3 文件结构与发布程序包 62
    3.3.1 编写setup.py 62
    3.3.2 留言板的项目结构 64
    3.3.3 setup.py与MANIFEST.in——设置程序包信息与捆绑的文件 65
    3.3.4 setup.py——创建执行命令 69
    3.3.5 python setup.py sdist——创建源码发布程序包 71
    3.3.6 提交至版本库 71
    3.3.7 README.rst——开发环境设置流程 73
    3.3.8 变更依赖包 75
    3.3.9 通过requirements.txt固定开发版本 77
    3.3.10 python setup.py bdist_wheel——制作用于wheel发布的程序包 78
    3.3.11 上传到PyPI并公开 79
    3.3.12 小结 85
    3.4 小结 86
    第2部分 团队开发的周期 87
    第4章 面向团队开发的工具 88
    4.1 问题跟踪系统 88
    4.1.1 Redmine 88
    4.1.2 安装Redmine 89
    4.1.3 Redmine的设置 91
    4.1.4 插件 93
    4.2 版本控制系统 94
    4.2.1 Mercurial与Redmine的联动 94
    4.2.2 用于生成版本库的插件 95
    4.3 聊天系统 97
    4.3.1 Slack 97
    4.3.2 Slack的特点 98
    4.3.3 Slack做不到的事 101
    4.3.4 Slack的注册 102
    4.4 对团队开发有帮助的工具 102
    4.4.1 Dropbox 102
    4.4.2 Google Drive 102
    4.5 小结 103
    第5章 项目管理与审查 104
    5.1 项目管理与问题的区分使用 104
    5.1.1 项目管理的前置准备工作 104
    5.1.2 创建问题 105
    5.1.3 整理问题 107
    5.1.4 分割问题 107
    5.2 问题模板 108
    5.2.1 安装插件 108
    5.2.2 问题模板的使用方法 109
    5.2.3 Global Issue Templates 111
    5.2.4 问题模板示例 112
    5.3 问题驱动开发 114
    5.3.1 别急着敲代码,先建问题 114
    5.3.2 创建与问题编号同名的分支 115
    5.3.3 让发布与分支相对应 115
    5.3.4 分支的合并 116
    5.4 审查 117
    5.4.1 为什么需要审查 117
    5.4.2 审查委托:代码审查篇 118
    5.4.3 审查委托:作业审查篇 119
    5.4.4 实施审查:代码审查篇 120
    5.4.5 实施审查:作业审查篇 123
    5.5 小结 123
    第6章 用Mercurial管理源码 125
    6.1 Mercurial版本库的管理与设置 125
    6.1.1 服务器上的Uinx用户群设置 125
    6.1.2 创建版本库 126
    6.1.3 hgrc的设置 127
    6.1.4 使用设置好的版本库 127
    6.1.5 使用hgweb建立简易中央版本库 127
    6.2 灵活使用“钩子” 128
    6.2.1 钩子功能的设置方法 129
    6.2.2 尝试钩子脚本 129
    6.2.3 钩子事件 130
    6.2.4 钩子功能的执行时机 131
    6.2.5 编写钩子脚本 134
    6.3 分支的操作 136
    6.4 关于合并 137
    6.4.1 未发生冲突的合并 138
    6.4.2 合并时发生冲突以及用文本编辑器解决冲突的方法 140
    6.4.3 合并的类型与冲突 143
    6.4.4 用GUI的合并工具进行合并 144
    6.5 GUI客户端 147
    6.5.1 GUI客户端的介绍 147
    6.5.2 GUI客户端的优点 149
    6.5.3 GUI客户端的缺点 151
    6.6 考虑实际运用的BePROUD Mercurial Workflow 152
    6.6.1 概述 152
    6.6.2 背景 152
    6.6.3 版本库的结构 153
    6.6.4 提交源码 154
    6.6.5 提交设计 156
    6.6.6 分支的合并 157
    6.6.7 集成分支 158
    6.7 小结 160
    第7章 完备文档的基础 162
    7.1 要记得给项目写文档 162
    7.1.1 写文档时不想做的事 162
    7.1.2 什么样的状态让人想写文档 164
    7.2 Sphinx的基础与安装 165
    7.2.1 Sphinx的安装 166
    7.2.2 reStructuredText入门 167
    7.2.3 用Sphinx写结构化文档的流程 169
    7.2.4 Sphinx扩展 174
    7.3 导入Sphinx可解决的问题与新出现的问题 175
    7.3.1 由于是纯文本,所以能在平时用的编辑器上写文档 176
    7.3.2 信息与视图相分离,所以能集中精神编辑内容,不用顾虑装饰等外观问题 176
    7.3.3 可根据一个源码输出PDF等多种格式 179
    7.3.4 通过结构化,文档可分成几个文件来写 180
    7.3.5 能用Mercurial等轻松实现版本管理 181
    7.3.6 API参考手册与程序的管理一体化 182
    7.3.7 通过Web浏览器共享 184
    7.3.8 导入Sphinx后仍存在的问题 185
    7.4 文档集的创建与使用 186
    7.4.1 什么是文档集 186
    7.4.2 项目所需文档的一览表 187
    7.4.3 面向项目组长、经理 187
    7.4.4 面向设计者 189
    7.4.5 面向开发者 189
    7.4.6 面向客户 189
    7.5 小结 190
    第8章 模块分割设计与单元测试 191
    8.1 模块分割设计 191
    8.1.1 功能设计 191
    8.1.2 构成Web应用的组件 192
    8.1.3 组件设计 194
    8.1.4 模块与程序包 195
    8.2 测试 197
    8.2.1 测试的种类 197
    8.2.2 编写单元测试 198
    8.2.3 从单元测试中剔除环境依赖 209
    8.2.4 用WebTest做功能测试 215
    8.3 通过测试改良设计 219
    8.4 推进测试自动化 221
    8.4.1 用tox自动生成执行测试的环境 221
    8.4.2 可重复使用的测试环境 223
    8.5 小结 223
    第9章 Python封装及其运用 224
    9.1 使用程序包 224
    9.1.1 程序包的版本指定 224
    9.1.2 从非PyPI服务器安装程序包 226
    9.1.3 程序包的发布格式 228
    9.1.4 生成wheelhouse的方法 230
    9.1.5 从wheelhouse安装 231
    9.2 巧用程序包 232
    9.2.1 私密发布 232
    9.2.2 巧用requirements.txt 232
    9.2.3 requirements.txt层级化 233
    9.2.4 为部署和CI+tox准备的requiremests 234
    9.2.5 通过requirements.txt指定库的版本 235
    9.3 小结 236
    第10章 用Jenkins持续集成 237
    10.1 什么是持续集成 237
    10.1.1 持续集成的简介 237
    10.1.2 Jenkins简介 239
    10.2 Jenkins的安装 239
    10.2.1 安装Jenkins主体程序 239
    10.2.2 本章将用到的Jenkins插件 240
    10.3 执行测试代码 241
    10.3.1 让Jenkins运行简单的测试代码 241
    10.3.2 添加Job 242
    10.3.3 Job的成功与失败 244
    10.4 测试结果输出到报告 246
    10.4.1 安装pytest 246
    10.4.2 调用pytest命令 246
    10.4.3 根据pytest更改Jenkins的设置 246
    10.5 显示覆盖率报告 247
    10.5.1 安装pytest-cov 248
    10.5.2 从pytest获取覆盖率 248
    10.5.3 读取覆盖率报告 248
    10.6 执行Django的测试 250
    10.6.1 安装Python模块 250
    10.6.2 Django的调整 251
    10.6.3 示例代码 251
    10.6.4 Jenkins的调整 255
    10.6.5 “构建后操作”选项卡的设置 257
    10.7 通过Jenkins构建文档 260
    10.7.1 安装Sphinx 261
    10.7.2 在Jenkins添加Job 261
    10.7.3 Sphinx构建发出警告时令Job失败 261
    10.7.4 查看成果 262
    10.7.5 通过Task Scanner Plugin管理TODO 263
    10.7.6 Task Scanner Plugin的设置示例 264
    10.8 Jenkins进阶技巧 265
    10.8.1 好用的功能 265
    10.8.2 进一步改善 267
    10.9 小结 268
    第3部分 服务公开 269
    第11章 环境搭建与部署的自动化 270
    11.1 确定所需环境的内容 270
    11.1.1 网络结构 270
    11.1.2 服务器搭建内容的结构化 272
    11.1.3 用户的设置 273
    11.1.4 选定程序包 274
    11.1.5 中间件的设置 277
    11.1.6 部署 280
    11.2 用Ansible实现自动化作业 282
    11.2.1 Ansible简介 282
    11.2.2 文件结构 287
    11.2.3 执行Ansible 288
    11.2.4 与最初确定的结构相对应 288
    11.2.5 将各步骤Ansible化 289
    11.2.6 整理Ansible的执行环境 295
    11.3 小结 296
    第12章 应用的性能改善 298
    12.1 Web应用的性能 298
    12.1.1 Web应用面对大量集中请求时会产生哪些问题 298
    12.1.2 针对高负荷的对策 299
    12.2 评估留言板应用的性能 300
    12.2.1 什么是应用的性能 300
    12.2.2 安装ApacheBench 300
    12.2.3 用ApachBench评估性能 301
    12.3 gunicorn简介 303
    12.3.1 安装gunicorn 304
    12.3.2 在gunicorn上运行应用 304
    12.4 nginx简介 306
    12.4.1 安装nginx 306
    12.4.2 检测nginx的性能 307
    12.5 在nginx和gunicorn上运行应用 310
    12.5.1 gunicorn的设置 310
    12.5.2 nginx的设置 310
    12.5.3 评估nginx+gunicorn的性能 311
    12.5.4 性能比较 312
    12.6 小结 313
    第4部分 加速开发的技巧 315
    第13章 让测试为我们服务 316
    13.1 认识现状:测试的客观环境 316
    13.2 将测试导入开发各个阶段 317
    13.2.1 文档的测试(审查) 317
    13.2.2 测试设计的编写方法(输入与输出) 320
    13.2.3 测试的实施与测试阶段的轮换(做什么,做多少) 323
    13.3 小结:测试并不可怕 326
    第14章 轻松使用Django 327
    14.1 Django简介 327
    14.1.1 Django的安装 327
    14.1.2 Django的架构 327
    14.1.3 Django的文档 331
    14.2 数据库的迁移 331
    14.2.1 什么是数据库的迁移 331
    14.2.2 Django的迁移功能 332
    14.3 fixture replacement 339
    14.3.1 什么是测试配置器 339
    14.3.2 几种不便使用默认配置器的情况 342
    14.3.3 如何使用factory_boy 343
    14.3.4 消除“不便使用默认配置器的情况” 345
    14.4 Django Debug Toolbar 346
    14.5 小结 353
    第15章 方便好用的Python模块 355
    15.1 轻松计算日期 355
    15.1.1 日期计算的复杂性 355
    15.1.2 导入dateutil 357
    15.2 简化模型的映射 359
    15.2.1 模型映射的必要性 359
    15.2.2 映射规则的结构化与重复利用 360
    15.2.3 导入bpmappers 363
    15.2.4 与Django联动 366
    15.2.5 编写JSON API 367
    15.3 图像处理 369
    15.3.1 安装Pillow 369
    15.3.2 图像格式转换 371
    15.3.3 改变图像尺寸 372
    15.3.4 剪裁图像 374
    15.3.5 对图像进行滤镜处理 375
    15.4 数据加密 377
    15.4.1 安装PyCrypto 377
    15.4.2 通用加密系统的加密及解密 377
    15.4.3 公钥加密系统(RSA)的加密与解密 378
    15.5 使用Twitter的API 382
    15.5.1 导入tweepy 382
    15.5.2 添加应用与获取用户密钥 382
    15.5.3 获取访问令牌 385
    15.5.4 调用Twitter API 385
    15.5.5 编写用Twitter认证的系统 387
    15.6 使用REST API 393
    15.6.1 REST简介 394
    15.6.2 导入Requests 394
    15.6.3 导入测试服务器 394
    15.6.4 发送GET请求 396
    15.6.5 发送POST请求 397
    15.6.6 发送JSON格式的POST请求 398
    15.6.7 使用GET/POST之外的HTTP方法 399
    15.7 小结 400
    附录 401
    附录A VirtualBox的设置 402
    A.1 安装VirtualBox 402
    A.2 新建虚拟机 403
    A.3 备份虚拟机 404
    附录B OS(Ubuntu)的设置 407
    B.1 安装Ubuntu 407
    B.2 SSH的设置 417
    B.3 中文的设置 419
    B.4 添加用户 419
查看详情
系列丛书 / 更多
Python项目开发实战(第2版)
机器学习实战
[美]Peter Harrington 著;李锐、李鹏、曲亚东 译
Python项目开发实战(第2版)
图灵程序设计丛书:Python基础教程
[挪威]Magnus Lie Hetland 著;司维、曾军崴、谭颖华 译
Python项目开发实战(第2版)
JavaScript高级程序设计(第3版)
[美]Nicholas C.Zakas 著;李松峰、曹力 译
Python项目开发实战(第2版)
Python编程:从入门到实践
[美]埃里克·马瑟斯(Eric Matthes) 著;袁国忠 译
Python项目开发实战(第2版)
R语言实战(第2版)
[美]卡巴科弗(Robert I. Kabacoff) 著;王小宁、刘撷芯、黄俊文 译
Python项目开发实战(第2版)
大数据:互联网大规模数据挖掘与分布式处理
[美]Anand、[美]Jeffrey David Ullman 著;王斌 译
Python项目开发实战(第2版)
算法(第4版)
[美]Robert、[美]Kevin Wayne 著;谢路云 译
Python项目开发实战(第2版)
Spark快速大数据分析
[美]卡劳(Holden Karau)、[美]肯维尼斯科(Andy Konwinski)、[美]温德尔(Patrick Wendell)、[加拿大]扎哈里亚(Matei Zaharia) 著;王道远 译
Python项目开发实战(第2版)
MySQL必知必会
[英]福塔(Ben Forta) 著;刘晓霞、钟鸣 译
Python项目开发实战(第2版)
Objective-C基础教程 第2版
[美]Scott、[美]Waqar、[美]Mark Dalrymple 著;周庆成 译
Python项目开发实战(第2版)
图解HTTP
[日]上野·宣 著;于均良 译
Python项目开发实战(第2版)
算法图解
袁国忠 译
相关图书 / 更多
Python项目开发实战(第2版)
Python游戏开发从入门到进阶实战
明日科技 编著
Python项目开发实战(第2版)
Python财务数据分析微课版
徐万紫
Python项目开发实战(第2版)
Python数值分析算法实践
王娟
Python项目开发实战(第2版)
PyTorch深度学习指南:计算机视觉 卷II 王兆宇
(巴西)丹尼尔·沃格特·戈多伊
Python项目开发实战(第2版)
PyTorch深度学习指南:序列与自然语言处理 卷III
(巴西)丹尼尔·沃格特·戈多伊(Daniel Voigt Godoy)
Python项目开发实战(第2版)
PyTorch深度学习与企业级项目实战
宋立桓 宋立林
Python项目开发实战(第2版)
PyTorch深度学习指南:编程基础 卷I
(巴西)丹尼尔·沃格特·戈多伊
Python项目开发实战(第2版)
Python数据分析快速上手
王靖、商艳红、张洪波、卢军
Python项目开发实战(第2版)
Python在结构动力计算中的应用
龙晓鸿 等
Python项目开发实战(第2版)
Python量子计算实践:基于Qiskit和IBM Quantum Experience平台
(美)哈西·诺伦(Hassi Norlén)
Python项目开发实战(第2版)
Python服务端测试开发实战
无涯
Python项目开发实战(第2版)
Python贝叶斯建模与计算
[阿根廷] 奥斯瓦尔多·A. 马丁(Osvaldo A. Martin),[美]拉万·库马尔(Ravin Kumar)[美]劳俊鹏(Junpeng Lao)著 郭涛 译