在好例子网,分享、交流、成长!
您当前所在位置:首页Python 开发实例Python语言基础 → Python项目开发实战(第2版)代码.rar

Python项目开发实战(第2版)代码.rar

Python语言基础

下载此实例
  • 开发语言:Python
  • 实例大小:15.64M
  • 下载次数:110
  • 浏览次数:1057
  • 发布时间:2019-08-17
  • 实例类别:Python语言基础
  • 发 布 人:robot666
  • 文件格式:.rar
  • 所需积分:2
 相关标签: python 开发实战 第2版 py 实战

实例介绍

【实例简介】

1.Python入门
2.开发Web应用
3.Python项目的结构与包的创建
4.面向团队开发的工具
5.项目管理与审查
6.用Mercurial管理源码
7.完备文档的基础
8.模块分割设计与单元测试
9.Python封装及其运用

10.用Jenkins持续集成
11.环境搭建与部署的自动化
12.应用的性能改善
14.轻松使用Django
15.方便好用的Python模块
AppendixB_OS(Ubuntu)的设置



【实例截图】

from clipboard



【核心代码】


目 录
第 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

viii 目 录
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

目 录 ix
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

x 目 录
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

目 录 xi
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

xii 目 录
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

目 录 xiii
第 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

xiv 目 录
第 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

目 录 xv
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版)代码.rar

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警