Python Web开发实战

Python Web开发实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2016-09
版次: 1
ISBN: 9787121297335
定价: 105.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 516页
字数: 616千字
正文语种: 简体中文
原版书名: Python Web
156人买过
  •   《Python Web开发实战》按照一个Web 产品从无到有、从简单变复杂、从基础到进阶的过程,多角度、全方位讲述了Python Web 开发。内容涉及Web 框架、测试、数据库、消息队列、服务化、持续集成等,把网站工程的全貌展现在读者的眼前,从其中可以了解Web 工程从开发到上线的完整流程。另外,作者对当前现在正在流行的技术或工具,如Flask、Celery、Jupyter、Supervisor、 
      SaltStack、Pandas 等都有较为详细的阐述,可作为技术选型时的参考。 
      对于Web 开发者、使用Python 语言的运维工程师和运维开发工程师、想提高Python 技能的开发者、想了解Python Web 开发的其他开发者,《Python Web开发实战》都适合阅读。 
        董伟明,豆瓣高级产品开发工程师,主要负责豆瓣读书、电影、音乐、东西等产品线。从2011年开始接触Python, 从运维、运维开发到现在的Web开发,积累了丰富的运维和开发经验,作者积极参与开源项目,给IPython、pip及Python标准库等贡献过代码。这本书将作者这些年使用Python进行Web开发,对各方面知识的理解和积累的经验进行梳理和总结。 作者个人博客是http://www.dongwm.com,Github地址为https://github.com/dongweiming 
    第1 章初识Python Web 开发1 
    Python Web 开发介绍1 
    为什么应该选择Python 作为Web 开发语言2 
    选择Python 2 还是Python 3 2 
    Web 框架介绍3 
    主流Web 框架3 
    小众的Web 框架5 
    选择Web 框架时应遵循的原则5 
    第2 章Web 开发前的准备7 
    搭建一个能运行的虚拟机环境7 
    安装VirtualBox 8 
    使用Vagrant 安装8 
    使用Docker 安装10 
    包管理和虚拟环境13 
    包管理13 
    使用pip 替代easy_install 13 
    distribute、distutils 和setuptools 14 
    entry_points 15 
    插件系统16 
    虚拟环境17 
    virtualenv 18 
    virtualenv 定制化18 
    virtualenvwrapper 21 
    virtualenv-burrito 23 
    autoenv 24 
    进阶篇:pip 高级用法25 
    命令自动补全25 
    普通用户安装25 
    编辑模式25 
    使用devapi 作为缓存代理服务器26 
    PYPI 的完全镜像27 
    第3 章Flask Web 开发 28 
    Flask 入门29 
    安装Flask 29 
    从Hello World 开始29 
    配置管理31 
    调试模式32 
    动态URL 规则32 
    自定义URL 转换器33 
    HTTP 方法34 
    唯一URL 35 
    构造URL 36 
    跳转和重定向36 
    响应38 
    静态文件管理40 
    即插视图40 
    蓝图43 
    子域名43 
    命令行接口44 
    模板46 
    Jinja2 46 
    Mako 52 
    使用MySQL 60 
    安装MySQL 和驱动61 
    设置应用账号和权限61 
    用MySQLdb 写原生语句62 
    事务提交和回滚63 
    ORM 简介64 
    使用SQLAlchemy 65 
    使用ORM 67 
    数据库关联69 
    在Flask 中使用SQLAlchemy 71 
    记录慢查询73 
    理解Context 74 
    本地线程74 
    Werkzeug 的Local 75 
    flask.request 76 
    使用上下文77 
    使用LocalProxy 替代g 80 
    从零开始实现一个文件托管服务80 
    首页84 
    重新设置图片页86 
    下载页87 
    预览页87 
    短链接页88 
    第4 章Flask 开发进阶 89 
    Flask 的信号机制89 
    Blinker 的使用89 
    Flask 中内置的信号90 
    自定义信号92 
    信号订阅的高级用法92 
    Flask-Login 中的信号93 
    Flask 的扩展95 
    Flask-Script 95 
    Flask-DebugToolbar 97 
    Flask-Migrate 98 
    Flask-WTF 100 
    Flask-Security 102 
    Flask-RESTful 109 
    Flask-Admin 111 
    Flask-Assets 115 
    Werkzeug 的使用118 
    DebuggedApplication 118 
    数据结构120 
    功能函数121 
    密码加密122 
    中间件123 
    第5 章REST 和Ajax 127 
    什么是REST 127 
    RESTful API 设计指南128 
    使用名词来表示资源128 
    关注请求头129 
    合理使用请求方法和状态码129 
    正确地使用REST 130 
    对输出的结果不再包装131 
    不要做出错误的提示131 
    使用嵌套对象序列化131 
    版本132 
    URI 失效和迁移132 
    信息过滤132 
    速度限制133 
    缓存133 
    并发控制134 
    使用Ajax 135 
    第6 章网站架构. 140 
    Python 应用服务器140 
    WSGI 协议141 
    常见的WSGI 容器141 
    Web 服务器Nginx 143 
    Web 服务器与应用服务器的区别143 
    为什么要选择Nginx 143 
    安装Nginx 144 
    使用Nginx 部署Flask 应用144 
    缓存系统Memcached 149 
    Libmc 安装配置150 
    使用原生SQL 缓存152 
    缓存更新策略157 
    Memcached 使用的经验157 
    键值对数据库Redis 157 
    操作Redis 158 
    Redis 应用场景159 
    分片和集群管理168 
    NoSQL 数据库MongoDB 169 
    为什么使用NoSQL 169 
    MongoDB 169 
    使用pymongo 的例子171 
    使用Mongoengine 的例子174 
    MongoDB 实践经验176 
    大型网站架构经验182 
    缓存183 
    负载均衡183 
    高可用184 
    业务拆分184 
    集群184 
    第7 章系统管理 186 
    进程管理Supervisor 186 
    Supervisor 组件187 
    配置Supervisor 187 
    使用Supervisor 190 
    应用部署Fabric 193 
    Fabric 应用接口194 
    使用Fabric 管理Flask 应用197 
    配置管理工具SaltStack 和Ansible 199 
    SaltStack 200 
    Ansible 207 
    使用Psutil 213 
    使用Sentry 收集错误信息215 
    安装配置Sentry 216 
    启动Sentry 218 
    创建团队和项目218 
    配置SDK 220 
    使用StatsD、Graphite 等搭建Web 监控223 
    配置Graphite 225 
    使用StatsD 226 
    配置Diamond 227 
    发布指标项227 
    使用Grafana 228 
    使用Kenshin 232 
    第8 章测试和持续集成 233 
    使用unittest 和doctest 做测试233 
    unittest 233 
    doctest 236 
    使用py.test 和mock 237 
    py.test 237 
    mock 241 
    持续集成243 
    使用Tox 集成248 
    第9 章消息队列和Celery 250 
    使用Beanstalkd 251 
    使用Beanstalkc 252 
    深入理解RabbitMQ 253 
    AMQP 254 
    虚拟主机258 
    插件系统258 
    通过Web 和REST API 管理RabbitMQ 259 
    故障转移262 
    使用Celery 262 
    Celery 的架构263 
    Celery 序列化265 
    安装配置Celery 265 
    从一个简单的例子开始265 
    指定队列268 
    使用任务调度269 
    任务绑定、记录日志和重试270 
    在Flask 应用中使用Celery 271 
    深入理解Celery 274 
    Celery 的依赖274 
    任务调用277 
    信号系统278 
    Worker 管理279 
    监控和管理Celery 280 
    子任务281 
    进阶篇:Celery 最佳实践283 
    使用自动扩展283 
    善用远程Debug 283 
    合理安排任务周期284 
    合理使用队列和优先级285 
    保证业务逻辑的事务性285 
    关闭你不想要的功能285 
    使用阅后即焚模式285 
    善用Prefetch 模式286 
    善用工作流286 
    第10 章服务化 288 
    为什么需要服务化288 
    RPC 框架289 
    服务化带来的问题290 
    微服务架构290 
    使用ri 291 
    定义IDL 文件292 
    服务端实现294 
    客户端实现297 
    PIDL——豆瓣的服务化实践301 
    PIDL 架构302 
    第11 章数据处理 305 
    使用MapReduce 做日志分析305 
    使用MapReduce 305 
    使用DPark 309 
    分布式文件系统MooseFS 309 
    Mesos 310 
    配置DPark 环境311 
    从WordCount 开始314 
    PV & UV 统计316 
    数据报表320 
    发送带有样式和附件的邮件320 
    创建xlsx 文件325 
    使用Pandas 328 
    Pandas 入门329 
    读取MySQL 数据库332 
    和Flask 应用集成332 
    第12 章帮助工具. 336 
    IPython 336 
    IPython 交互模式338 
    常用的Magic 函数338 
    配置和自定义IPython 341 
    IPython 的扩展系统342 
    使用IPython 调试复杂代码343 
    双进程模型344 
    并行计算345 
    Jupyter Notebook 347 
    Notebook 格式350 
    Notebook 格式转换和预览351 
    为什么使用RequireJS 352 
    在Notebook 里使用Echarts 353 
    富显示355 
    自定义JavaScript 和CSS 样式356 
    使用nbextension 扩展Notebook 358 
    在Notebook 上使用并行计算359 
    调试和Debug 工具360 
    了解Linux 服务器运行情况360 
    性能测试366 
    Python 程序性能分析369 
    性能调优实践373 
    进阶篇:定制基于IPython 的交互解释环境374 
    进阶篇:豆瓣东西的Jupyter Notebook 实践376 
    第13 章Python 并发编程383 
    使用多线程385 
    使用Gevent 392 
    使用多进程399 
    使用Future 406 
    使用asyncio 408 
    async/await 409 
    Future 412 
    使用aiohttp 414 
    使用队列416 
    第14 章Python 进阶 418 
    使用标准库模块418 
    errno 419 
    subprocess 420 
    contextlib 421 
    glob 424 
    operator 424 
    functools 426 
    collections 428 
    Python 语法最佳实践432 
    命名434 
    目录xxix 
    使用join 连接字符串435 
    EAFP vs LBYL 435 
    定义类的__str__/__repr__ 方法436 
    优美的Python 437 
    从Python 3 移植439 
    partialmethod 439 
    singledispatch 440 
    suppress 442 
    redirect_stdout/redirect_stderr 443 
    使用CFFI/Cython 编写Python 扩展444 
    使用CFFI 444 
    使用Cython 447 
    进阶篇:使用PyObjC 发送通知451 
    第15 章Web 开发项目实践455 
    Web 项目经验总结455 
    开发流程455 
    使用合理的项目结构456 
    关注代码复杂度457 
    代码质量保证工具457 
    Pycodestyle 对中文缩进的处理458 
    Flake8 459 
    Pylint 460 
    其他代码质量保证工具461 
    使用AST 做静态检查461 
    其他静态检查工具467 
    编写Flake8 扩展468 
    代码评审的意义470 
    作为被评审者471 
    作为评审者472 
    评审的标准473 
  • 内容简介:
      《Python Web开发实战》按照一个Web 产品从无到有、从简单变复杂、从基础到进阶的过程,多角度、全方位讲述了Python Web 开发。内容涉及Web 框架、测试、数据库、消息队列、服务化、持续集成等,把网站工程的全貌展现在读者的眼前,从其中可以了解Web 工程从开发到上线的完整流程。另外,作者对当前现在正在流行的技术或工具,如Flask、Celery、Jupyter、Supervisor、 
      SaltStack、Pandas 等都有较为详细的阐述,可作为技术选型时的参考。 
      对于Web 开发者、使用Python 语言的运维工程师和运维开发工程师、想提高Python 技能的开发者、想了解Python Web 开发的其他开发者,《Python Web开发实战》都适合阅读。 
  • 作者简介:
        董伟明,豆瓣高级产品开发工程师,主要负责豆瓣读书、电影、音乐、东西等产品线。从2011年开始接触Python, 从运维、运维开发到现在的Web开发,积累了丰富的运维和开发经验,作者积极参与开源项目,给IPython、pip及Python标准库等贡献过代码。这本书将作者这些年使用Python进行Web开发,对各方面知识的理解和积累的经验进行梳理和总结。 作者个人博客是http://www.dongwm.com,Github地址为https://github.com/dongweiming 
  • 目录:
    第1 章初识Python Web 开发1 
    Python Web 开发介绍1 
    为什么应该选择Python 作为Web 开发语言2 
    选择Python 2 还是Python 3 2 
    Web 框架介绍3 
    主流Web 框架3 
    小众的Web 框架5 
    选择Web 框架时应遵循的原则5 
    第2 章Web 开发前的准备7 
    搭建一个能运行的虚拟机环境7 
    安装VirtualBox 8 
    使用Vagrant 安装8 
    使用Docker 安装10 
    包管理和虚拟环境13 
    包管理13 
    使用pip 替代easy_install 13 
    distribute、distutils 和setuptools 14 
    entry_points 15 
    插件系统16 
    虚拟环境17 
    virtualenv 18 
    virtualenv 定制化18 
    virtualenvwrapper 21 
    virtualenv-burrito 23 
    autoenv 24 
    进阶篇:pip 高级用法25 
    命令自动补全25 
    普通用户安装25 
    编辑模式25 
    使用devapi 作为缓存代理服务器26 
    PYPI 的完全镜像27 
    第3 章Flask Web 开发 28 
    Flask 入门29 
    安装Flask 29 
    从Hello World 开始29 
    配置管理31 
    调试模式32 
    动态URL 规则32 
    自定义URL 转换器33 
    HTTP 方法34 
    唯一URL 35 
    构造URL 36 
    跳转和重定向36 
    响应38 
    静态文件管理40 
    即插视图40 
    蓝图43 
    子域名43 
    命令行接口44 
    模板46 
    Jinja2 46 
    Mako 52 
    使用MySQL 60 
    安装MySQL 和驱动61 
    设置应用账号和权限61 
    用MySQLdb 写原生语句62 
    事务提交和回滚63 
    ORM 简介64 
    使用SQLAlchemy 65 
    使用ORM 67 
    数据库关联69 
    在Flask 中使用SQLAlchemy 71 
    记录慢查询73 
    理解Context 74 
    本地线程74 
    Werkzeug 的Local 75 
    flask.request 76 
    使用上下文77 
    使用LocalProxy 替代g 80 
    从零开始实现一个文件托管服务80 
    首页84 
    重新设置图片页86 
    下载页87 
    预览页87 
    短链接页88 
    第4 章Flask 开发进阶 89 
    Flask 的信号机制89 
    Blinker 的使用89 
    Flask 中内置的信号90 
    自定义信号92 
    信号订阅的高级用法92 
    Flask-Login 中的信号93 
    Flask 的扩展95 
    Flask-Script 95 
    Flask-DebugToolbar 97 
    Flask-Migrate 98 
    Flask-WTF 100 
    Flask-Security 102 
    Flask-RESTful 109 
    Flask-Admin 111 
    Flask-Assets 115 
    Werkzeug 的使用118 
    DebuggedApplication 118 
    数据结构120 
    功能函数121 
    密码加密122 
    中间件123 
    第5 章REST 和Ajax 127 
    什么是REST 127 
    RESTful API 设计指南128 
    使用名词来表示资源128 
    关注请求头129 
    合理使用请求方法和状态码129 
    正确地使用REST 130 
    对输出的结果不再包装131 
    不要做出错误的提示131 
    使用嵌套对象序列化131 
    版本132 
    URI 失效和迁移132 
    信息过滤132 
    速度限制133 
    缓存133 
    并发控制134 
    使用Ajax 135 
    第6 章网站架构. 140 
    Python 应用服务器140 
    WSGI 协议141 
    常见的WSGI 容器141 
    Web 服务器Nginx 143 
    Web 服务器与应用服务器的区别143 
    为什么要选择Nginx 143 
    安装Nginx 144 
    使用Nginx 部署Flask 应用144 
    缓存系统Memcached 149 
    Libmc 安装配置150 
    使用原生SQL 缓存152 
    缓存更新策略157 
    Memcached 使用的经验157 
    键值对数据库Redis 157 
    操作Redis 158 
    Redis 应用场景159 
    分片和集群管理168 
    NoSQL 数据库MongoDB 169 
    为什么使用NoSQL 169 
    MongoDB 169 
    使用pymongo 的例子171 
    使用Mongoengine 的例子174 
    MongoDB 实践经验176 
    大型网站架构经验182 
    缓存183 
    负载均衡183 
    高可用184 
    业务拆分184 
    集群184 
    第7 章系统管理 186 
    进程管理Supervisor 186 
    Supervisor 组件187 
    配置Supervisor 187 
    使用Supervisor 190 
    应用部署Fabric 193 
    Fabric 应用接口194 
    使用Fabric 管理Flask 应用197 
    配置管理工具SaltStack 和Ansible 199 
    SaltStack 200 
    Ansible 207 
    使用Psutil 213 
    使用Sentry 收集错误信息215 
    安装配置Sentry 216 
    启动Sentry 218 
    创建团队和项目218 
    配置SDK 220 
    使用StatsD、Graphite 等搭建Web 监控223 
    配置Graphite 225 
    使用StatsD 226 
    配置Diamond 227 
    发布指标项227 
    使用Grafana 228 
    使用Kenshin 232 
    第8 章测试和持续集成 233 
    使用unittest 和doctest 做测试233 
    unittest 233 
    doctest 236 
    使用py.test 和mock 237 
    py.test 237 
    mock 241 
    持续集成243 
    使用Tox 集成248 
    第9 章消息队列和Celery 250 
    使用Beanstalkd 251 
    使用Beanstalkc 252 
    深入理解RabbitMQ 253 
    AMQP 254 
    虚拟主机258 
    插件系统258 
    通过Web 和REST API 管理RabbitMQ 259 
    故障转移262 
    使用Celery 262 
    Celery 的架构263 
    Celery 序列化265 
    安装配置Celery 265 
    从一个简单的例子开始265 
    指定队列268 
    使用任务调度269 
    任务绑定、记录日志和重试270 
    在Flask 应用中使用Celery 271 
    深入理解Celery 274 
    Celery 的依赖274 
    任务调用277 
    信号系统278 
    Worker 管理279 
    监控和管理Celery 280 
    子任务281 
    进阶篇:Celery 最佳实践283 
    使用自动扩展283 
    善用远程Debug 283 
    合理安排任务周期284 
    合理使用队列和优先级285 
    保证业务逻辑的事务性285 
    关闭你不想要的功能285 
    使用阅后即焚模式285 
    善用Prefetch 模式286 
    善用工作流286 
    第10 章服务化 288 
    为什么需要服务化288 
    RPC 框架289 
    服务化带来的问题290 
    微服务架构290 
    使用ri 291 
    定义IDL 文件292 
    服务端实现294 
    客户端实现297 
    PIDL——豆瓣的服务化实践301 
    PIDL 架构302 
    第11 章数据处理 305 
    使用MapReduce 做日志分析305 
    使用MapReduce 305 
    使用DPark 309 
    分布式文件系统MooseFS 309 
    Mesos 310 
    配置DPark 环境311 
    从WordCount 开始314 
    PV & UV 统计316 
    数据报表320 
    发送带有样式和附件的邮件320 
    创建xlsx 文件325 
    使用Pandas 328 
    Pandas 入门329 
    读取MySQL 数据库332 
    和Flask 应用集成332 
    第12 章帮助工具. 336 
    IPython 336 
    IPython 交互模式338 
    常用的Magic 函数338 
    配置和自定义IPython 341 
    IPython 的扩展系统342 
    使用IPython 调试复杂代码343 
    双进程模型344 
    并行计算345 
    Jupyter Notebook 347 
    Notebook 格式350 
    Notebook 格式转换和预览351 
    为什么使用RequireJS 352 
    在Notebook 里使用Echarts 353 
    富显示355 
    自定义JavaScript 和CSS 样式356 
    使用nbextension 扩展Notebook 358 
    在Notebook 上使用并行计算359 
    调试和Debug 工具360 
    了解Linux 服务器运行情况360 
    性能测试366 
    Python 程序性能分析369 
    性能调优实践373 
    进阶篇:定制基于IPython 的交互解释环境374 
    进阶篇:豆瓣东西的Jupyter Notebook 实践376 
    第13 章Python 并发编程383 
    使用多线程385 
    使用Gevent 392 
    使用多进程399 
    使用Future 406 
    使用asyncio 408 
    async/await 409 
    Future 412 
    使用aiohttp 414 
    使用队列416 
    第14 章Python 进阶 418 
    使用标准库模块418 
    errno 419 
    subprocess 420 
    contextlib 421 
    glob 424 
    operator 424 
    functools 426 
    collections 428 
    Python 语法最佳实践432 
    命名434 
    目录xxix 
    使用join 连接字符串435 
    EAFP vs LBYL 435 
    定义类的__str__/__repr__ 方法436 
    优美的Python 437 
    从Python 3 移植439 
    partialmethod 439 
    singledispatch 440 
    suppress 442 
    redirect_stdout/redirect_stderr 443 
    使用CFFI/Cython 编写Python 扩展444 
    使用CFFI 444 
    使用Cython 447 
    进阶篇:使用PyObjC 发送通知451 
    第15 章Web 开发项目实践455 
    Web 项目经验总结455 
    开发流程455 
    使用合理的项目结构456 
    关注代码复杂度457 
    代码质量保证工具457 
    Pycodestyle 对中文缩进的处理458 
    Flake8 459 
    Pylint 460 
    其他代码质量保证工具461 
    使用AST 做静态检查461 
    其他静态检查工具467 
    编写Flake8 扩展468 
    代码评审的意义470 
    作为被评审者471 
    作为评审者472 
    评审的标准473 
查看详情
相关图书 / 更多
Python Web开发实战
Python和PySpark数据分析
(加)乔纳森·里乌
Python Web开发实战
Python机器学习入门与实践 从深度学习到生成对抗网络GAN 深入浅出GAN生成对抗网络 实战gan TensorFlow与Keras 人工智能技术书籍
(日)大关真之
Python Web开发实战
Python程序设计基础实践教程
任志考;孙劲飞;叶臣
Python Web开发实战
Python语言程序设计
王刚
Python Web开发实战
Python代码编程 学科项目式编程(六年级)
冯建刚
Python Web开发实战
Python机器学习 : 核心技术与开发实战 周志华西瓜书机器学习实战伴侣书
[美]普拉提克·乔希 著;李现伟 译者;颉腾文化 出品;阿尔伯托·阿尔塔桑切斯(美);曾小健
Python Web开发实战
Python数据分析从入门到精通(第2版)
明日科技
Python Web开发实战
Python数据分析与挖掘
齐福利
Python Web开发实战
Python基础与应用(互联网+教育新形态一体化系列教材)
李喆时、谢家立、赵丽 编
Python Web开发实战
Python数据分析与可视化项目实战
王振丽
Python Web开发实战
Python爬虫从菜鸟到高手
李宁
Python Web开发实战
Python程序设计基础教程
\"孙海龙 王济军\
您可能感兴趣 / 更多
Python Web开发实战
教堂街往事
董伟明 著