《Python Web开发实战》简介:
这本书涵盖了Web开发的方方面面,可以分为如下部分:
1. 使用最新的Flask 0.11进行Web开发,学习Jinja2、Flask-Script、Flask-Migrate、Flask-Security、Flask-Assets等8种常用扩展,帮助读者理解Flask 的 优秀设计(上下文、BluePrint等),最后利用Mako、Flask_mako、SQLAlchemy、Pillow等技术实现一个豆瓣一个真实的服务。
2. 阐述笔者对REST的理解,并提出一些设计API的注意事项,最后通过jQuery和fetch实现使用Ajax的例子,让读者了解如何让前后端通信。
3. 对Python应用服务器,Web服务器、缓存系统、键值对数据库等技术的选型和使用方法,最后演示大型网站架构及其重要组件的用意。
4. 使用Fabric、SaltStack、Ansible、Supervisor、Graphite等做系统管理,并演示一个通过最新的Sentry 8演示如何收集应用错误信息。
5. 测试和持续集成,最后使用最新的Buildbot 0.9实现一个Github项目的持续集成。
6. 深入RabbitMQ和Celery的原理和使用方法,最后分享笔者使用的进阶实践。
7. 服务化及豆瓣服务化实践。
8. 详细讲解豆瓣工程师都在用的DPark,包含安装、环境配置、使用和框架化分析uv&pv,接着将展示几个笔者实际工作中的数据报表需求,并讲解如何用Pandas做数据可视化。
9. 深入IPython和Jupyter Notebook这两个工具,并分享在豆瓣对应的实践。
10. 从获取Linux服务器的相关情况、性能测试、分析Python程序性能瓶颈三个方面展示对应的工具及使用方法。
11. 以抓取微信公众号文章为主线,分别使用多线程、多进程、Gevent、Future和asyncio这5种编程方式完成不同阶段的爬取任务,也深入地分析在它们之间如何选择。
12. Python进阶和Web项目经验。
封底推荐语
伟明把他个人多年 Web 开发的经验,以及豆瓣十年来数百名优秀工程师在 Web 开发上最佳实践的积累,凝聚在了《Python Web 开发实战》这本书里,多维度、全面地介绍了 Python Web 开发涉及的各种技术。我向所有有兴趣使用 Python 做 Web 开发的开发者们,强烈推荐此书。
——洪强宁,爱因互动CTO,前豆瓣首席架构师,前宜信大数据创新中心首席架构师
感谢伟明把豆瓣的一些工程实践进行了整理和总结,这是本书最宝贵的一点,库谁都会用,但在什么场景使用,在生产环境中这个库的表现到底如何,是这本书的一个精华,期望将来还可以看到越来越多这样的图书,祝此书大卖。
——清风,SAY CEO,前豆瓣技术总监。
伟明将自身在 Web 领域所有方面的经验提炼后整理成书,本质上是将几十个关联产品的官方文档,结合具体工程经验进行了梳理,给出了领域问题最佳方案的关键思考点和自己的答案,而更加可贵的是,给出了这些思考点的来源,以及形成过程,即给出了解决各种 Web 领域问题的思维模式。
——Zoom.Quiet(大妈),优视眼动科技 CTO,Python 中文社区创始人之一和管理员
阅读本书,我最大的感受就是:全和新。本书的内容涉及了Web框架、Ajax的前后端交互、测试、数据库、数据分析、服务化、部署、系统管理、常用工具等内容,有点百科全书的意味。另外,书中讲的许多东西都是现在正在流行的技术或工具,像Flask、Celery、Jupyter、Supervisor、SaltStack、Pandas等。
——李迎辉,Python开源资深行者,Python-CN邮件列表创建人,UliPad和Uliweb作者
本书由Python开发开始,循序渐进,把网站工程的全貌展现在读者的眼前,是了解Web工程从开发到上线完整流程的绝佳参考书籍。
——邢犇(CNBorn), 前豆瓣东西技术负责人
很多刚进入Python世界的人,伟明的这本书提供了一个非常好的“知识地图”,书中涉及了Python Web开发的方方面面。
——胡阳(the5fire),手机搜狐网,任资深开发工程师
这本书从开发环境的搭建,Web 框架的使用,到最后的持续集成和 Python 的进阶用法,无一不是他多年的实际工程经验总结,十分宝贵。
——姚钢强(acmerfight),知乎工程师
这本书非常全面地介绍了使用 Python 进行 Web 开发的方方面面,既有 Web 框架、缓存、消息队列、并发处理的场景介绍和技术选型,又有开发流程、质量保证的丰富实战经验。
——蔡斌(VeryCB),DeepDevelop工程师,前豆瓣条目组技术负责人
整本书都是作者对实际Web项目中大量实战经验的总结,绝非纸上谈兵。相信通过阅读该书可以帮助开发者规避掉大量项目中的“坑”,构建出更高性能、更稳定的Web项目。
——Spawnris, 腾讯工程师
《Python Web开发实战》目录:
第1章 初识Web开发
1.1 Web开发介绍
1.2 Web框架介绍
第2章 环境搭建
2.1 Ubuntu环境搭建
2.2 包管理和虚拟环境
2.3 进阶篇: pip高级用法
第3章 Flask Web开发
3.1 Flask入门
3.2 模板
3.3 使用MySQL
3.4 理解Context
3.5 从零开始实现一个文件托管服务
第4章 Flask 开发进阶
4.1 Flask的信号机制
4.2 Flask的扩展
4.3 Werkzeug使用
第5章 REST和Ajax
5.1 什么是REST
5.2 RESTful API设计指南
5.3 使用Ajax
第6章 网站架构
6.1 Python应用服务器
6.2 Web服务器Nginx
6.3 缓存系统Memcached
6.4 键值对数据库Redis
6.5 NoSQL数据库MongoDB
6.6 大型网站架构经验
第7章 系统管理
7.1 进程管理Supervisor
7.2 应用部署Fabric
7.3 配置管理SaltStack和Ansible
7.4 使用Psutil
7.5 使用Sentry收集错误信息
7.6 使用StatsD、Graphite等搭建Web监控
第8章 测试和持续集成
8.1 使用unittest和doctest测试
8.2 使用py.test和mock
8.3 持续集成
第9章 消息队列和Celery
9.1 使用Beanstalkd
9.2 深入RabbitMQ
9.3 使用Celery
9.4 深入Celery
9.5 进阶篇: Celery最佳实践
第10章 服务化
10.1 为什么需要服务化
10.2 使用Thrift
10.3 PIDL - 豆瓣服务化实践
第11章 数据处理
11.1 使用MapReduce做日志分析
11.2 使用DPark
11.3 数据报表
11.4 使用Pandas
第12章 帮助工具
12.1 IPython
12.2 Jupyter Notebook
12.3 调试和DEBUG工具
12.4 进阶篇: 定制基于IPython的交互解释环境
12.5 进阶篇: 豆瓣东西的Jupyter Notebook实践
第13章 Python并发编程
13.1 使用多线程
12.2 使用Gevent
13.3 使用多进程
13.4 使用Future
13.5 使用asyncio
第14章 Python进阶
14.1 使用标准库模块
14.2 Python语法最佳实践
14.3 从Python 3移植
14.4 使用CFFI/Cython编写Python扩展
14.5 进阶篇: 使用PyObjC发送通知
第15章 Web开发项目实践
15.1 Web项目经验总结
15.2 编写代码质量检测插件
15.3 代码评审的意义
· · · · · ·