欢迎光临
免费的PDF电子书下载网站

Python Web开发实战 PDF下载

编辑推荐

Python Web开发的百科全书,了解Web工程从开发到上线的完整流程
对实际Web项目中大量实战经验的总结,有用、实用 

内容简介

本书按照一个Web 产品从无到有、从简单变复杂、从基础到进阶的过程,多角度、全方位讲述了Python Web开发。内容涉及Web框架、测试、数据库、消息队列、服务化、持续集成等,把网站工程的全貌展现在读者的眼前,从其中可以了解Web工程从开发到上线的完整流程。另外,作者对当前现在正在流行的技术或工具,如Flask、Celery、Jupyter、Supervisor、SaltStack、Pandas等都有较为详细的阐述,可作为技术选型时的参考。对于Web 开发者、使用Python 语言的运维工程师和运维开发工程师、想提高Python 技能的开发者、想了解Python Web 开发的其他开发者,本书都适合阅读。

作者简介

董伟明,豆瓣高级产品开发工程师,主要负责豆瓣读书、电影、音乐、东西等产品线。从2011年开始接触Python, 从运维、运维开发到现在的Web开发,积累了丰富的运维和开发经验,他积极参与开源项目,给IPython、pip及Python标准库等贡献过代码。这本书是他这些年使用Python进行Web开发,对各方面知识理解和积累经验的梳理和总结。个人博客是http://www.dongwm.com,GitHub地址为https://github.com/dongweiming

Python Web开发实战 PDF下载

目录

第1 章初识Python Web 开发. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Python Web 开发介绍
为什么应该选择Python 作为Web 开发语言
选择Python
还是Python
Web 框架介绍
主流Web 框架
小众的Web 框架
选择Web 框架时应遵循的原则
第2 章Web 开发前的准备. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
搭建一个能运行的虚拟机环境
安装VirtualBox
使用Vagrant 安装
使用Docker 安装
包管理和虚拟环境
包管理
使用pip 替代easy_install
distribute、distutils 和setuptools
entry_points
插件系统
虚拟环境
virtualenv
virtualenv 定制化
virtualenvwrapper
virtualenv-burrito
autoenv
进阶篇:pip 高级用法
命令自动补全
普通用户安装
编辑模式
使用devapi 作为缓存代理服务器
PYPI 的完全镜像
第3 章Flask Web 开发. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Flask 入门
安装Flask
从Hello World 开始
配置管理
调试模式
动态URL 规则
自定义URL 转换器
HTTP 方法
唯一URL
构造URL
跳转和重定向
响应
静态文件管理
即插视图
蓝图
子域名
命令行接口
模板
Jinja2
Mako
使用MySQL
安装MySQL 和驱动
设置应用账号和权限
用MySQLdb 写原生语句
事务提交和回滚
ORM 简介
使用SQLAlchemy
使用ORM
数据库关联
在Flask 中使用SQLAlchemy
记录慢查询
理解Context
本地线程
Werkzeug 的Local
flask.request
使用上下文
使用LocalProxy 替代g
从零开始实现一个文件托管服务
首页
重新设置图片页
下载页
预览页
短链接页
第4 章Flask 开发进阶. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Flask 的信号机制
Blinker 的使用
Flask 中内置的信号
自定义信号
信号订阅的高级用法
Flask-Login 中的信号
Flask 的扩展
Flask-Script
Flask-DebugToolbar
Flask-Migrate
Flask-WTF
Flask-Security
Flask-RESTful
Flask-Admin
Flask-Assets
Werkzeug 的使用
DebuggedApplication
数据结构
功能函数
密码加密
中间件
第5 章REST 和Ajax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
什么是REST
RESTful API 设计指南
使用名词来表示资源
关注请求头
合理使用请求方法和状态码
正确地使用REST
对输出的结果不再包装
不要做出错误的提示
使用嵌套对象序列化
版本
URI 失效和迁移
信息过滤
速度限制
缓存
并发控制
使用Ajax
第6 章网站架构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Python 应用服务器
WSGI 协议
常见的WSGI 容器
Web 服务器Nginx
Web 服务器与应用服务器的区别
为什么要选择Nginx
安装Nginx
使用Nginx 部署Flask 应用
缓存系统Memcached
Libmc 安装配置
使用原生SQL 缓存
缓存更新策略
Memcached 使用的经验
键值对数据库Redis
操作Redis
Redis 应用场景
分片和集群管理
NoSQL 数据库MongoDB
为什么使用NoSQL
MongoDB
使用pymongo 的例子
使用Mongoengine 的例子
MongoDB 实践经验
大型网站架构经验
缓存
负载均衡
高可用
业务拆分
集群
第7 章系统管理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
进程管理Supervisor
Supervisor 组件
配置Supervisor
使用Supervisor
应用部署Fabric
Fabric 应用接口
使用Fabric 管理Flask 应用
配置管理工具SaltStack 和Ansible
SaltStack
Ansible
使用Psutil
使用Sentry 收集错误信息
安装配置Sentry
启动Sentry
创建团队和项目
配置SDK
使用StatsD、Graphite 等搭建Web 监控
配置Graphite
使用StatsD
配置Diamond
发布指标项
使用Grafana
使用Kenshin
第8 章测试和持续集成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
使用unittest 和doctest 做测试
unittest
doctest
使用py.test 和mock
py.test
mock
持续集成
使用Tox 集成
第9 章消息队列和Celery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
使用Beanstalkd
使用Beanstalkc
深入理解RabbitMQ
AMQP
虚拟主机
插件系统
通过Web 和REST API 管理RabbitMQ 259
故障转移
使用Celery
Celery 的架构
Celery 序列化
安装配置Celery
从一个简单的例子开始
指定队列
使用任务调度
任务绑定、记录日志和重试
在Flask 应用中使用Celery
深入理解Celery
Celery 的依赖
任务调用
信号系统
Worker 管理
监控和管理Celery
子任务
进阶篇:Celery 最佳实践
使用自动扩展
善用远程Debug
合理安排任务周期
合理使用队列和优先级
保证业务逻辑的事务性
关闭你不想要的功能
使用阅后即焚模式
善用Prefetch 模式
善用工作流
第10 章服务化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
为什么需要服务化
RPC 框架
服务化带来的问题
微服务架构
使用ri
定义IDL 文件
服务端实现
客户端实现
PIDL——豆瓣的服务化实践
PIDL 架构
第11 章数据处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
使用MapReduce 做日志分析
使用MapReduce

使用DPark
分布式文件系统MooseFS
Mesos
配置DPark 环境
从WordCount 开始
PV & UV 统计
数据报表
发送带有样式和附件的邮件
创建xlsx 文件
使用Pandas
Pandas 入门
读取MySQL 数据库
和Flask 应用集成
第12 章帮助工具. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
IPython
IPython 交互模式
常用的Magic 函数
配置和自定义IPython
IPython 的扩展系统
使用IPython 调试复杂代码
双进程模型
并行计算
Jupyter Notebook
Notebook 格式
Notebook 格式转换和预览
为什么使用RequireJS
在Notebook 里使用Echarts
富显示
自定义JavaScript 和CSS 样式
使用nbextension 扩展Notebook

在Notebook 上使用并行计算
调试和Debug 工具
了解Linux 服务器运行情况
性能测试
Python 程序性能分析
性能调优实践
进阶篇:定制基于IPython 的交互解释环境
进阶篇:豆瓣东西的Jupyter Notebook 实践
第13 章Python 并发编程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
使用多线程
使用Gevent
使用多进程
使用Future
使用asyncio
async/await
Future
使用aiohttp
使用队列
第14 章Python 进阶. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
使用标准库模块
errno
subprocess
contextlib
glob
operator
functools
collections
Python 语法最佳实践
命名

使用join 连接字符串
EAFP vs LBYL
定义类的__str__/__repr__ 方法
优美的Python
从Python 3 移植
partialmethod
singledispatch
suppress
redirect_stdout/redirect_stderr
使用CFFI/Cython 编写Python 扩展
使用CFFI
使用Cython
进阶篇:使用PyObjC 发送通知
第15 章Web 开发项目实践. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Web 项目经验总结
开发流程
使用合理的项目结构
关注代码复杂度
代码质量保证工具
Pycodestyle 对中文缩进的处理
Flake8
Pylint
其他代码质量保证工具
使用AST 做静态检查
其他静态检查工具
编写Flake8 扩展
代码评审的意义
作为被评审者
作为评审者
评审的标准

Python Web开发实战 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:Python Web开发实战