《Python开发实战》

基本信息

作者: (日)BePROUD股份有限公司

译者: 盛荣

丛书名: 图灵程序设计丛书

出版社:人民邮电出版社

ISBN:9787115320896

上架时间:2014-5-6

出版日期:2014 年5月

开本:16开

页码:1

版次:1-1

所属分类:计算机 > 软件与程序设计 > Python

更多关于》》》《Python开发实战》

编辑推荐 

真实项目中的经验总结

  行业精英们的智慧结晶

  团队开发环境的搭建与管理 / ticket驱动开发 / 源代码管理(Mercurial) / PyPI包 / Jenkins持续集成 / 性能优化(nginx与gunicorn) / GAE开发 / Django框架……

  本书来自真正的开发现场,是BePROUD公司众多极客在真实项目中的经验总结。

内容简介

书籍

计算机书籍

《python开发实战》来自真正的开发现场,是beproud 公司众多极客在真实项目中的经验总结。

作者从python 的环境搭建讲起,介绍了web 应用开发方法、任务管理,以及评审、测试及高效部署、服务器调试等内容,尽可能网罗了python 开发流程中所涉及的方方面面。在这里,python 仅仅是一个载体,很多知识点在非python 下也适用,这也是本书最大的特色所在。

《python开发实战》适合有一定基础的python 开发者,以及使用php 或ruby 进行网页开发的读者阅读。

目录

《python开发实战》

第一部分 使用python开发

01 开始使用python  2

01.01 python环境搭建  2

01.01.01 安装apt软件包  2

01.01.02 easy_install 与pip  3

01.01.03 安装virtualenv  4

01.01.04 使用不同版本的python  9

01.02 mercurial环境搭建  12

01.02.01 mercurial的简介  12

01.02.02 mercurial的安装  12

01.02.03 代码库的建立  13

01.02.04 文件的操作  14

01.03 编辑器与方便的开发工具  17

01.03.01 编辑器  17

01.03.02 python开发小贴士  19

01.04 本章小结  22

02 开发web应用程序  23

02.01 了解web应用程序  23

02.01.01 什么是web应用程序  23

02.01.02 web应用程序与桌面应用程序的不同  24

02.01.03 web应用程序的机制  24

02.02 web应用程序开发的事前准备  27

02.02.01 关于flask  27

02.02.02 flask的安装  27

02.03 web应用程序的开发流程  28

02.04 明确需要开发的目标系统  28

02.04.01 留言簿应用程序的需求  28

02.04.02 明确必要的功能  29

02.04.03 明确页面的表现形式  29

02.05 页面设计  29

02.05.01 页面设计草图  30

02.05.02 设计html和css  30

02.06 后台功能的开发  35

02.06.01 保存评论数据  35

02.06.02 取出保存过的评论数据  36

02.06.03 使用模板引擎显示页面  37

02.06.04 准备评论的目标url地址  39

02.06.05 调整模板输出  40

02.07 功能验证  41

02.08 本章小结  42

第二部分 团队开发的周期和流程

03 准备团队开发环境  46

03.01 在公共服务器上建立用户、设置权限  46

03.01.01 用户与用户组的建立  46

03.01.02 sudoers  46

03.01.03 virtualenv  47

03.02 问题跟踪系统  47

03.02.01 trac  48

03.02.02 安装trac  48

03.03 版本控制系统  51

03.04 有利于团队开发的工具  52

03.04.01 skype  52

03.04.02 dropbox  53

03.04.03 google docs  54

03.05 本章小结  54

04 编写开发文档的准备  55

04.01 编写项目开发文档  55

04.01.01 在写文档时,我们不想做什么工作  55

04.01.02 愿意在什么样的条件下编写文档  57

04.02 sphinx的基础与安装  58

04.02.01 sphinx的安装  58

04.02.02 restructuredtext入门  60

04.02.03 使用sphinx编写结构化文档的流程  61

04.02.04 sphinx的扩展  66

04.03 引入sphinx后解决的问题与新的问题  67

04.03.01 采用纯文本,可使用一般的编辑器来写文档  67

04.03.02 内容与形式分离,不关注文档形式而专注于内容的编写  68

04.03.03 不仅仅是pdf,通过一个源可以输出多种格式  71

04.03.04 将文档分割成多个文件编辑,进行结构化处理  72

04.03.05 通过mercurial进行简单的版本控制  73

04.03.06 将api参考手册和对应程序协同管理  73

04.03.07 一般文档可通过web浏览器共享  76

04.03.08 sphinx引入后仍需探讨的问题  76

04.04 文档集合的创建与利用  77

04.04.01 什么是文档集合  78

04.04.02 项目中必不可少的文档列表  78

04.04.03 面向团队领导、经理  79

04.04.04 面向设计人员  80

04.04.05 面向开发人员  80

04.04.06 面向用户  81

04.05 本章小结  81

05 问题跟踪与评审  82

05.01 任务管理与ticket驱动开发  82

05.01.01 开始写代码……在这之前还是先创建一个ticket  82

05.01.02 创建和ticket编号一致的分支  83

05.01.03 让版本发布与分支对应  84

05.01.04 分支的合并  84

05.01.05 整理ticket信息  86

05.01.06 ticket 的分割  86

05.02 评审  87

05.02.01 为什么需要评审  87

05.02.02 作为被评审人:代码评审篇  87

05.02.03 作为被评审人:工作评审篇  88

05.02.04 作为评审人:代码评审篇  89

05.02.05 作为评审人:工作评审篇  92

05.03 本章小结  92

06 模块的分割设计与单元测试  93

06.01 模块分割设计方法  93

06.01.01 功能设计  93

06.01.02 web应用程序的构成组件  94

06.01.03 组件设计  96

06.01.04 模块与包  97

06.02 测试  99

06.02.01 测试的种类  99

06.02.02 编写单元测试  101

06.02.03 从单元测试中去除环境依赖  109

06.02.04 使用webtest进行功能测试  114

06.03 从测试来改善设计  118

06.04 迈向测试执行的自动化  120

06.04.01 测试环境的自动生成  120

06.04.02 可以反复执行的测试环境  121

06.05 本章小结  121

07 打包与自动建立环境  122

07.01 源代码打包与发布自动化  123

07.01.01 打包  123

07.01.02 程序包的自动化发布  127

07.01.03 向pypi注册程序包  128

07.01.04 向pypi上传程序包  128

07.01.05 书写程序包的使用说明  129

07.02 安装与环境关联库的介绍  131

07.02.01 distribute  132

07.02.02 pip  133

07.02.03 virtualenv  134

07.03 应用环境自动构建所必备的功能与工具  135

07.03.01 准备独立的python环境  135

07.03.02 python库的程序包化以及标准安装  136

07.03.03 锁定应用环境的程序包版本  136

07.03.04 整个环境可以离线安装  136

07.03.05 重建环境时可以复用缓存  137

07.03.06 使用编译好的二进制模块  138

07.03.07 当pypi宕机或高峰时,有备用服务器  138

07.04 自动应用环境构建  140

07.04.01 开始  140

07.04.02 构建初始环境  140

07.04.03 包含源代码的应用环境  141

07.04.04 在部署环境中的离线安装  143

07.04.05 安装部署需要二进制编译的程序包  144

07.05 公司内部共享专用库  144

07.05.01 在多个项目间共享代码的方法  145

07.05.02 自动建立非公开程序包的应用环境  149

07.06 本章小结  152

08 使用mercurial管理源代码  153

08.01 mercurial的代码库管理与配置  153

08.01.01 在服务器上设置unix用户与用户组  153

08.01.02 设置umask值  154

08.01.03 创建代码库  154

08.01.04 配置hgrc  155

08.01.05 使用配置后的代码库  155

08.01.06 使用hgweb作为简易的中央代码库  155

08.02 灵活使用钩子功能  156

08.02.01 钩子功能的设置方法  157

08.02.02 使用钩子脚本  157

08.02.03 钩子事件  157

08.02.04 钩子执行的时机  159

08.02.05 编写钩子脚本  161

08.03 分支操作  164

08.04 分支间的合并  165

08.04.01 没有冲突的合并  165

08.04.02 用文本编辑器消除合并冲突  167

08.04.03 合并的模式与冲突的种类  169

08.04.04 使用图形界面合并的方法  170

08.05 gui客户端  173

08.05.01 gui客户端的介绍  173

08.05.02 gui客户端的优点  176

08.05.03 gui客户端的缺点  179

08.05.04 hgwebcommit  180

08.06 考虑实际运用而产生的bp mercurial w/f  182

08.06.01 概要  182

08.06.02 背景  183

08.06.03 代码库的构成  183

08.06.04 源代码提交  184

08.06.05 设计师的提交操作  186

08.06.06 分支的合并  187

08.06.07 集成分支  188

08.07 本章小结  189

09 使用jenkins持续集成  192

09.01 什么是持续集成  192

09.01.01 关于持续集成  192

09.01.02 关于jenkins  194

09.02 jenkins的安装  194

09.02.01 安装java  194

09.02.02 安装jenkins主体程序  194

09.02.03 本章用到的jenkins插件  195

09.03 执行测试代码  195

09.03.01 简单测试代码的示例  195

09.03.02 注册作业  196

09.03.03 作业执行成功与失败  198

09.04 测试结果通过报表输出  199

09.04.01 安装nose  199

09.04.02 调用nosetests命令  199

09.04.03 为使用nose修改jenkins配置  200

09.05 展示代码覆盖率报告  201

09.05.01 coverage的安装  201

09.05.02 coverage命令的概述:分为“统计”和“输出”两步  201

09.05.03 通过nose执行coverage  201

09.05.04 读取代码覆盖率的报告  202

09.06 执行django测试  204

09.06.01 django模块的安装  204

09.06.02 django的安装  204

09.06.03 样本代码  205

09.06.04 jenkins的创建  208

09.06.05 “构建后处理”部分的配置  210

09.07 通过jenkins构建文档  212

09.07.01 sphinx的安装  212

09.07.02 配置jenkins作业的注册信息  212

09.07.03 sphinx的构建在出现告警时作业失败  213

09.07.04 查阅编译成果  214

09.07.05  使用task scanner plugin管理todo信息  215

09.07.06 task scanner plugin的配置示例  216

09.08 进一步灵活使用jenkins  216

09.08.01 便捷的功能  216

09.08.02 进一步的改善  218

09.09 本章小结  219

第三部分 服务的公开

10 自动构建和部署环境  222

10.01 安装与配置具有依赖关系的程序包  222

10.01.01 创建操作用户  223

10.01.02 列举必要的程序包  224

10.01.03 封闭环境的安装  226

10.01.04 应用程序的配置  228

10.01.05 环境验证  231

10.02 整理部署的操作步骤  231

10.02.01 赋予代码库访问权限  232

10.02.02 克隆源代码库  232

10.02.03 部署方法总结  232

10.03 使用fabric将操作步骤自动化  233

10.03.01 什么是fabric  233

10.03.02 安装与环境配置  233

10.03.03 编写简单的脚本  234

10.03.04 参考步骤说明书进行自动化  234

10.03.05 验证执行行为  238

10.03.06 添加注释  238

10.04 本章小结  239

11 改善应用程序的性能  240

11.01 web应用程序的性能  240

11.01.01 web应用遭遇大量请求时会如何  240

11.01.02 高负载时的对策  241

11.02 留言簿应用程序的性能测试  242

11.02.01 什么是应用程序的性能  242

11.02.02 apachebench的安装  242

11.02.03 使用apachebench检测性能  242

11.03 关于gunicorn  245

11.03.01 gunicorn的安装  245

11.03.02 使用gunicorn运行应用程序  245

11.04 关于nginx  247

11.04.01 nginx的安装  248

11.04.02 nginx的性能测试  248

11.05 使用nginx和gunicorn共同承载应用程序  250

11.05.01 gunicorn的配置  250

11.05.02 nginx的配置  251

11.05.03 测定nginx+gunicorn组合的性能  251

11.05.04 性能的比较  252

11.06 本章小结  253

12 google app engine  254

12.01 关于app engine  254

12.01.01 什么是app engine  254

12.01.02 app engine的优点  255

12.01.03 app engine平台的局限性  255

12.01.04 使用案例  256

12.02 app engine的主要功能  256

12.02.01 数据存储  256

12.02.02 自动扩展与负载分散  257

12.02.03 在app engine中的python运行环境  259

12.03 app engine的开发准备工作与步骤确认  260

12.03.01 获取账号并开发程序  260

12.03.02 创建sdk  263

12.03.03 开发简单的应用程序  264

12.03.04 部署  266

12.04 在app engine中开发flask的应用程序  267

12.04.01 使已有的应用程序运行  267

12.04.02 部署并运行  271

12.04.03 管理终端  272

12.05 调整:改善应用程序性能  274

12.05.01 根据appstats进行性能测试  274

12.05.02 使用多线程来处理  276

12.06 性能调优:减少计费额  277

12.06.01 与计费有关的配置  277

12.06.02 计费表  277

12.06.03 节约实例的数量  279

12.06.04 减少数据存储的操作  280

12.07 测试  282

12.07.01 在测试代码内使用api  282

12.07.02 测试的执行  284

12.07.03 在真实服务器上测试  285

12.08 本章小结  285

第四部分 加速开发的技术

13 测试是不可分割的一部分  288

13.01 认清测试现状  288

13.02 在开发的各个阶段引入测试工作  289

13.02.01 文档的测试(文档评审)  289

13.02.02 编写测试的方法(输入与输出)  292

13.02.03 测试的执行与测试阶段的轮换(把什么工作做到什么程度)  295

13.03 本章小结:对测试不要抱有恐惧  298

14 便捷地使用django  300

14.01 什么是django  300

14.01.01 django的安装  300

14.01.02 django的架构  300

14.01.03 django的文档  304

14.02 让数据库的集成更加方便  304

14.02.01 什么是数据库的集成  304

14.02.02 默认情况下django能做什么  304

14.02.03 对,就是它,使用south就能够做到  305

14.03 使用fixture replacement使测试更加方便  312

14.03.01 什么是测试配置器(fixture)  312

14.03.02 默认测试配置器的不便之处  314

14.03.03 使用factory_boy  315

14.04 使调试更加方便  318

14.05 本章小结  324

15 使用方便的python模块  325

15.01 简化日期计算的模块  325

15.01.01 日期计算的复杂之处  325

15.01.02 引入dateutil  327

15.02 简化模型映射的模块  329

15.02.01 必须进行模型映射的理由  329

15.02.02 映射规则的构造与复用  330

15.02.03 导入bpmappers模块  333

15.02.04 与django的联动  335

15.02.05 编写json api  336

15.03 判断字符的编码  337

15.04 rss阅读订阅的解析模块  339

15.04.01 导入feedparser模块  339

15.04.02 使用feedparser解析rss阅读订阅信息  339

15.05 图像处理模块  340

15.05.01 安装pil模块  340

15.05.02 转换图像格式  341

15.05.03 调整图像的尺寸  342

15.05.04 截取图像的某个部分  344

15.05.05 图像的过滤处理  345

15.06 数据的加密处理模块  346

15.06.01 pycrypto的安装  346

15.06.02 共同密钥的加密与解密  347

15.06.03 公开密钥方式的加密与解密  347

15.07 调用twitter的api模块  351

15.07.01 导入tweepy模块  351

15.07.02 应用程序的登录域和consumer key的获取  351

15.07.03 获得access token  354

15.07.04 调用twitterapi  354

15.07.05 开发使用twitter认证的应用程序  356

15.08 本章小结  361

附录a 建立virtualbox环境  362

附录b 建立操作系统环境  366

本图书信息来源:互动出版网

《Python开发实战》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. 如何写django中form的测试用例

    可简可繁, 可插库,可字符, 要测试valid,也要测试invalid, 可用csrf,也可用context. 放一个全面的, 实践中,找一个最优的组合就好. class NewTopicTests( ...

  2. Mybatis通过注解方式实现批量插入数据库

    原文地址:http://f0rb.iteye.com/blog/1207384 MyBatis中通过xml文件配置数据库批量操作的文章很多,比如这篇http://www.cnblogs.com/xcc ...

  3. Java核心编程快速入门

    Java核心编程部分的基础学习内容就不一一介绍了,本文的重点是JAVA中相对复杂的一些概念,主体内容如下图所示. 反射reflect是理解Java语言工作原理的基础,Java编译器首先需要将我们编写的 ...

  4. 在ssh中利用Solr服务建立的界面化站内搜索

         继上次匆匆搭建起结合solr和nutch的所谓站内搜索引擎之后,虽当时心中兴奋不已,可是看了看百度,再只能看看我的控制台的打印出每个索引项的几行文字,哦,好像差距还是有点大……      简 ...

  5. android studio 查看大纲

    就是 structure 面板 快捷键 Alt+7 === android studio 查看方法说明 点击菜单“View”-“Quick Documentation" 建议直接查看源代码文 ...

  6. android 自定义view android onmeasure onlayot ondraw

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha android onmeasure onlayot ondraw 顺序 ====== 1 ...

  7. Codeforces Round #505 (Div 1 + Div 2) (A~D)

    目录 Codeforces 1025 A.Doggo Recoloring B.Weakened Common Divisor C.Plasticine zebra D.Recovering BST( ...

  8. BZOJ3779 : 重组病毒

    一个点的感染时间为它到根路径上虚边数+1. 用Link-Cut Tree模拟虚实边切换,每次切换时等价于在一段或两段DFS序区间更新,线段树维护即可. 时间复杂度$O(n\log^2n)$. #inc ...

  9. BZOJ 3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队 动态规划

    3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=34 ...

  10. java并发基础(五)--- 线程池的使用

    第8章介绍的是线程池的使用,直接进入正题. 一.线程饥饿死锁和饱和策略 1.线程饥饿死锁 在线程池中,如果任务依赖其他任务,那么可能产生死锁.举个极端的例子,在单线程的Executor中,如果一个任务 ...