【试读】python项目开发实战(第2版)

上传人:suns****4568 文档编号:94593027 上传时间:2019-08-09 格式:PDF 页数:61 大小:2.12MB
返回 下载 相关 举报
【试读】python项目开发实战(第2版)_第1页
第1页 / 共61页
【试读】python项目开发实战(第2版)_第2页
第2页 / 共61页
【试读】python项目开发实战(第2版)_第3页
第3页 / 共61页
【试读】python项目开发实战(第2版)_第4页
第4页 / 共61页
【试读】python项目开发实战(第2版)_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《【试读】python项目开发实战(第2版)》由会员分享,可在线阅读,更多相关《【试读】python项目开发实战(第2版)(61页珍藏版)》请在金锄头文库上搜索。

1、引 言 迄今为止,BePROUD 公司已使用 Python 开发了诸多项目。我们之所以撰写本书,是为了 与各位读者分享我们在实践中总结出的一些技巧。 同时,鉴于最近公司员工数量增长,我们把在 BePROUD 工作所需的知识也写入了本书, 以便新的公司成员能尽快熟悉工作。 因此本书从搭建工作环境开始讲起,逐步涉及 Web 应用的开发、项目管理及审查、测试代 码的编写与高效部署、服务器调试等方面,网罗了 Python 项目开发工作中的一系列流程。书名 中的“实战”一词就包含了“工作”的意思。 书中所写的技巧主要源于我们的 Python2 开发经验。也正因为如此,本书将以 Python2 为例 进行

2、讲解。如今新的开发项目已经在使用 Python3,这些技巧转移到 Python3 上理应同样适用。 进入正题之前,先来聊聊我们的日常思路。 极客 / 书虫常伴身边的公司 BePROUD 里不乏极客和书虫们。在这里,很多人对特定领域的了解程度能吓掉你的下巴。 在这里,人们一旦发现感兴趣的事,就会拿出私人时间来学习、实践。要知道,极客和书 虫们不会为这种事情吝啬时间。 正如人们印象中的那样,极客和书虫们大多有些怪癖,但 BePROUD 的员工都具备下列共识。 希望能不做不想做的事 希望学会好的方法并付诸实践 希望工作时有个好心情 希望能不做不想做的事 在工作中,重复单调的作业是一种极其无趣的事,因

3、此能一次办完的事谁都不想去办两次。 另外,大家也都讨厌工序复杂、容易出错的工作。所以要开动脑筋,把复杂的工序简单化,同 时尽量减少出错的机会。 希望学会好的方法并付诸实践 世界上有许多公认的好方法、新思路和新技巧,我们要勇于尝试,学习它们并付诸实践。 使用好的方法必然能帮助我们削减不想做的工作。不过,方法的好坏不能人云亦云,我们 必须选出对自己真正有帮助的方法,然后再将所学方法应用到实际业务当中。 希望工作时有个好心情 现在,我们学会了优秀的方法、削减了繁杂的工作,之后自然希望带着好心情去工作。此 时不妨给 Skype 做个好玩的 bot,或者在下班后找个会议室搞一场妙趣横生的快速演讲。我们希

4、 望大家能在保质保量完成工作的同时有个好心情,而不是只把公司当作工作的场所。这是我们 的理念。 本书的内容全部基于事实,都是 BePROUD 员工实际尝试、实践过的。我们希望给各位提 供一些能实际应用且行之有效的知识,而不是让各位去死记硬背一大堆晦涩难懂的概念。我们 很愿意看到本书的知识能对各位有所帮助,愿各位能在工作中有个好心情。 谢辞 本书在编撰过程中承蒙多名 IT 业界高人指点:寺田学(terapyon) 、金子望、关根裕纪 (checkpoint) 、畠弥峰(flag_boy) 、小坂健二朗(inoshiro) 、筒井隆次(ryu22e) 、永井 孝(ngi644) 、中西直树(nk2

5、4) 、尾曾越雅文、柴田正明(_mshibata) 、真幡康德 (mahata) 、中石宜亨(eiryplus) 。各位在百忙之中仍担起审校工作,慷慨赐教,我们在此表 示由衷的感谢。此外还有 BePROUD 公司的 haru、altnight、masaya、crohaco、nakagami、yyyk, 感谢几位一边处理着公司内繁忙的开发工作,一边见缝插针地为本书进行审校。 最后感谢各位未能在著者处署名的 BePROUD 员工。如果没有各位员工长期以来的切磋琢 磨,这本书永远不会问世。 至此,希望这本集诸人之力编撰出来的书,能为 IT 业界出一份绵薄之力。 全体执笔者 2015 年 1 月 iv

6、 引 言 本书网址 http:/ 本书介绍的软件版本和 URL 均为截止到 2015 年 1 月底的最新信息,当前可能已发生变更。 前 言 本书涉及的内容 本书分为 4 个部分,共 15 章。 第 1 部分“Python 开发入门”的重点将放在个人开发。内容涵盖 Python 开发过程中必不可 少的工具的安装(第 1 章) ,简单的 Web 应用开发(第 2 章)以及 Python 项目的结构与包的创 建(第 3 章) 。 第 2 部分“团队开发的周期”将为各位说明多人团队开发的相关问题。这部分将重点介绍 团队高效开发过程中不可或缺的技术和技巧,内容涵盖团队开发前的环境调整(第 4 章) 、项

7、目 管理与审查(第 5 章) 、源码管理(第 6 章) 、文档(第 7 章) 、模块设计与单元测试(第 8 章) 、 封装及其运用(第 9 章) 、持续集成(第 10 章)等。 第 3 部分“服务公开”将向各位讲解如何搭建与运用正式环境公开 Web 服务(第 11 章) , 此外就是有关性能调节的一些方法(第 12 章) 。 第 4 部分“加速开发的技巧”可以说是加速开发的一些小贴士。例如将测试的概念导入整 个开发流程以加快项目进度(第 13 章) ,Django 的基础及其进阶性、实践性的用法(第 14 章) , Python 的辅助模块(第 15 章)等。 阅读本书前的准备 环境及版本 O

8、S: Ubuntu-14.04 Python: 2.7.6 Bash: 4.3 从第 2 章起,如无特别说明,则运行环境皆由 virtualenv 搭建。 关于 OS 实体机使用 Windows/OS X/Linux,服务器的测试环境使用虚拟机上的 Ubuntu。 Python 的官方手册 https:/docs.python.org/2.7/ 我们仅对 Python 官方手册中的内容做最低限度的介绍,部分说明会被省略。因此建议各位 vi 前 言 手边时常准备一份参考手册以便阅读。 Python 的官方教程非常适用于学习 Python 的基本安装流程、语法、术语、类以及模块。本 书将以各位看过

9、这份教程为前提进行讲解。 Unix/Linux 的一般命令操作 本书虽以 Ubuntu Linux 为前提讲解,但书中不对 Ubuntu Linux 的基本命令操作进行说明。 关于 PyPI(Python Package Index) PyPIA是一个集中管理包的网站,pip 等自动包安装工具会用到它。本书使用的包也来自 PyPI。 关于敏捷过程与极限编程 本书并不对敏捷过程(Agile Process)和极限编程(ExtremeProgramming)做单独的说明。 如今在许多书籍和网站上都能找到这二者的介绍,感兴趣的读者可以去读一读。 本书面向的人群 希望改善个人开发环境的人 希望改善团队

10、开发的人 想学习工作中可使用的 Python 技巧的人 新加入 BePROUD 公司项目的成员 A https:/pypi.python.org/pypi 注意 本书基于作者本人的调查结果而成。 我们在加工本书时力求完美。不过若您发现本书存在不足和错误、漏记等问题,请书面联系出版方。 对于因本书内容运用不当而导致的结果及其影响,无论是否因上述两项内容引起,我们均不负责,请知悉。 未获得出版方书面许可不得全部或部分复制本书。 商标等 本书已省略 TM 等符号。 Python 徽标是 the Python Software Foundation 的商标。 Django 和 Django 徽标是 D

11、jango Software Foundation 的商标。 Google App Engine 是 Google Inc. 的商标。 Jenkins 是 SOFTWARE IN PUBLIC INTEREST, INC. 的商标。 nginx 是 Nginx Software Inc. 的商标。 VirtualBox 是 ORACLE AMERICA, INC. 的商标。 Ubuntu 是 Canonical Limited 的商标。 此外,公司名和商品名、系统名一般为各开发者的注册商标。 本书注册商标中还使用了普遍使用的通用名。 目 录 第 1 部分 Python 开发入门 1 第 1 章

12、 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

13、.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 获取已

14、保存的留言列表 .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

15、.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

16、 第 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 创建问题

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号