Python高效开发实战——Django、Tornado、Flask、Twisted
  • 推荐2
  • 收藏9
  • 浏览9.4K

Python高效开发实战——Django、Tornado、Flask、Twisted

刘长龙 , 薛淑英 (作者)  张国霞 (责任编辑)

  • 书  号:978-7-121-30010-3
  • 出版日期:2016-10-21
  • 页  数:516
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:董英
也许你听说过全栈工程师,他们善于设计系统架构,精通数据库建模、通用网络协议、后端并发处理、前端界面设计,在学术研究或工程项目上能独当一面。通过对Python及其周边Web框架的学习和实践,你就可以成为这样的全能型人才。
本书分为3部分:第1部分是基础篇,带领初学者实践Python开发环境和掌握基本语法,同时对网络协议、Web客户端技术、数据库建模编程等网络编程基础深入浅出地进行学习;第2部分是框架篇,学习当前最流行的Python Web框架,即Django、Tornado、Flask和Twisted,达到对各种Python网络技术融会贯通的目的;第3部分是实战篇,分别对4种框架进行项目实践,利用其各自的特点开发适用于不同场景的网络程序。
本书内容精练、重点突出、实例丰富、讲解通俗,是广大网络应用设计和开发人员不可多得的一本参考书,同时非常适合大中专院校师生学习和阅读,也可作为高等院校计算机及相关培训机构的教材。
Python高效开发 实战
有些人想学Python,却不知如何下手;有些人已经学会Python的基本语法,却不知如何使用Python进行网站设计和开发;有些人实践过个别Python网络框架,却因为Python框架过多而无法融会贯通:本书就是为他们准备的一本指南。正所谓知识来源于实践,本书严格遵守这一原则,对每个知识点都进行了示例分析,并在第3篇精选了4个不同应用场景的网络项目,帮助读者真正掌握和运用Python及其周边框架。
为什么要读这本书
如果你不知道本书能否帮到你,或者你不知道是否要选择本书,那么请先想想在平时的学习或工作中是否遇到过这些问题:
? 有一个很好的设计网站的想法,想用Python实现却无从着手;
? 刚学习了编程语言的if、for、while等各种语法,却不知道利用编程语言到底能做些什么;
? 精通C、C++等后台编程语言,却跟不上互联网蓬勃发展的新技术;
? 学了美工画图、网页设计,却不懂数据库和网站搭建;
? 觉得Django、Tornado、Flask、Twisted这些框架的在线资料过于晦涩难懂;
? 知道各种Python Web框架,却不知道自己的项目适合哪一种;
? 学过W3CSchool中的Python课程,却不知道如何使用框架提高开发效率;
? 会开发网站程序,却不知道如何集成Nginx等Web服务器;
? 听说过SSL,让自己的网站支持HTTPS/SSL却力不从心;
? 学过网络编程,却还是不知道IPv6和IPv4的区别;
? 会网络数据库开发,却分不清楚PostgreSQL、SQLite、Oracle、MySQL、SQL Server的区别;
? 纠结于高网络流量时使用什么框架开发网站最好。
如果这其中有些是你正在困惑的地方,那么本书也许能帮到你;如果通过学习本书能帮你解决实际问题,那么笔者也就实现了写作本书的目标。
本书的编写特点
1.零基础要求
在学习本书之前不需要具备任何计算机专业背景,任何有志于Python及Web站点设计的读者都能利用本书从头学起。本书在基础和实践部分都有大量实例,代码短小精练,紧扣所讲要点的本质,以加深读者的印象;同时结合笔者多年使用Python语言的开发经验,阐述了很多代码编写技巧,读者可将代码复制到自己的机器上进行实验,自行实践和演练。
2.合理的章节安排
本书首先讲解了Python编程语言、网络和数据库基础知识、前端页面基础等知识点,然后详细讲解了Django、Tornado、Flask、Twisted这4大主流的Python Web开发框架,最后通过项目实践帮助读者综合运用之前学到的知识。
3.最新的框架版本
主流Python Web框架都是开源软件,并且仍随着计算机软硬件的进步处于不断发展中,所以使用Python框架的开发者必须紧跟最新的框架版本!本书讲解的4个Web框架都基于最新的框架版本,使得读者能马上将其运用在当前开发环境中。这是一本内容新颖、全面的Python Web框架应用实战教材。
4.内容全面
本书使得Python开发者不再局限于某个Web框架,一起学习这些框架有助于在学习的过程中举一反三、融会贯通。读者学完本书后可以成为Python Web编程方面的集大成者,对不同网络应用场景的设计和开发都能做到得心应手。
5.中小示例、项目案例,一个都不能少
根据作者多年的项目经验,本书通过将典型的示例与知识点加以整合,让读者对每章的知识点都有整体把握。最后4章介绍的项目案例不仅可以让读者在实际应用中更加熟练地掌握前面讲到的知识点,更能让读者了解前端开发中由轮廓到细节的完整实现流程。
本书以Python Web实战为主,所有代码均通过笔者上机调试,力求读者能学得懂、练得会。
本书的内容安排
本书共3篇13章,内容覆盖编程基础、Web框架详解及开发实战。
第1篇(第1~4章)打好Python基础
系统学习Python编程语言,并且掌握进行网络开发必备的网络基础、数据库设计、HTML、CSS、JavaScript等知识。本篇不仅适合新手学习,对有经验的开发者同样适用。
第2篇(第5~9章)详解主流Python Web框架
详细讲述了Django、Tornado、Flask、Twisted这4大主流Python Web框架的开发方法,在其中穿插学习Python虚环境、Nginx服务器、SQLAlchemy、HTML模板、HTML5 WebSocket等通用组件和技术。站在框架这个巨人的肩膀上,我们不仅可以提高开发效率,还可以实现多人协同、风格统一。
第3篇(第10~13章)实战项目
分别应用4大主流框架实践开发不同类型的网站项目应用,模拟场景覆盖社交网站、聊天室、信息管理系统、物联网消息网关等各个方面,在其中还加入了JavaScript、CSS、jQuery、Bootstrap等前端关键技术的应用,使得读者通过深入浅出的学习和实践成为全能开发者。
笔者按照自身近20年的学习和开发经验编排了本书的章节顺序,所以推荐按顺序从第1章学习到第13章,尤其不能遗漏第1篇基础部分的内容。时间特别紧迫或者只想精通个别Python Web框架的读者,也可以在阅读第1篇后直接阅读所需框架在第2篇和第3篇中的相应部分。
本书知识点图

本书面对的读者
? Python编程技术爱好者
? Django、Tornado、Flask、Twisted项目参与者
? 网站设计人员
? 网站开发人员
? 网站后台开发人员
? Web前端开发入门者
? 想由网页设计拓展为后台开发的设计者
? 由单机软件开发转向Web开发的技术人员
? 全栈开发人员
? 大中专院校的学生及各种IT培训学校的学生
? 希望自己动手设计站点原型的需求分析人员
编者推荐
本书的写作目的是确保读者能运用一些工具、框架、已有代码来提高开发效率和节约人力成本,确保读者能活学活用本书所讲解的内容。通过阅读本书,读者能知道如何设计一个网站、如何选择Python Web框架,以及如何快速使用框架进行应用开发。全书包含大量的实战案例和开发技巧,总结了使用Python进行Web开发时的优秀实践(Django、Tornado、Flask、Twisted、SQLAlchemy、Nginx、JavaScript、jQuery),讨论了各种实际问题的解决方案,是目前市场上全面实践Python Web开发的书籍。
致谢
笔者要把本书献给笔者的父母、岳父、岳母、妻子和孩子,感谢他们一直鼓励笔者,没有他们的支持,笔者无法做到这一切;还要感谢笔者的朋友和同事,感谢他们对笔者不断地鼓励和帮助。笔者非常幸运,能够和这些聪明、投入的人一起工作和交流。

目录

第1篇 打好Python基础
第1章 Python基础知识 2
1.1 Python综述 3
1.1.1 了解Python的特性及版本 3
1.1.2 安装Python 5
1.1.3 使用Python原生编辑器 7
1.1.4 使用Eclipse开发环境 9
1.1.5 Python编程入门——解决“斐波那契数列”问题 14
1.2 数据类型 16
1.2.1 Number类型 17
1.2.2 Sequence类型簇 20
1.2.3 String类型 22
1.2.4 Tuple类型 28
1.2.5 List类型 29
1.2.6 Set类型 30
1.2.7 Dictionary类型 33
1.3 流程控制 35
1.3.1 程序块与作用域 35
1.3.2 判断语句 36
1.3.3 循环语句 38
1.3.4 语句嵌套 41
1.4 函数 42
1.4.1 定义与使用 42
1.4.2 变长参数 44
1.4.3 匿名函数 46
1.5 异常 48
1.5.1 处理异常 48
1.5.2 自定义异常 50
1.6 面向对象编程 51
1.6.1 什么是面向对象 52
1.6.2 类和对象 53
1.6.3 继承 61
1.7 本章总结 64
第2章 Web编程之网络基础 65
2.1 TCP/IP网络 66
2.1.1 计算机网络综述 66
2.1.2 TCP和UDP 70
2.1.3 C/S及B/S架构 73
2.2 HTTP 74
2.2.1 HTTP流程 75
2.2.2 HTTP消息结构 76
2.2.3 HTTP请求方法 80
2.2.4 基于HTTP的网站开发 80
2.3 Socket编程 82
2.3.1 Socket基础 82
2.3.2 实战演练:Socket TCP原语 83
2.3.3 实战演练:Socket UDP原语 87
2.4 本章总结 88
第3章 客户端的编程技术 89
3.1 HTML 90
3.1.1 HTML介绍 90
3.1.2 HTML基本标签 93
3.1.3 HTML表单 99
3.2 CSS 102
3.2.1 样式声明方式 103
3.2.2 CSS语法 104
3.2.3 基于CSS+DIV的页面布局 106
3.3 JavaScript 108
3.3.1 在HTML中嵌入JavaScript 108
3.3.2 JavaScript的基本语法 109
3.3.3 DOM及其读写 115
3.3.4 window对象 118
3.3.5 HTML事件处理 121
3.4 jQuery 124
3.4.1 使用jQuery 124
3.4.2 选择器 125
3.4.3 行为 126
3.5 本章总结 130
第4章 数据库及ORM 131
4.1 数据库概念 131
4.1.1 Web开发中的数据库 132
4.1.2 关系数据库建模 134
4.2 关系数据库编程 137
4.2.1 常用SQL语句 137
4.2.2 实战演练:在Python中应用SQL 143
4.3 ORM编程 145
4.3.1 ORM理论基础 145
4.3.2 Python ORM库介绍 147
4.3.3 实战演练:Peewee库编程 148
4.4 本章总结 151
第2篇 详解主流Python Web框架
第5章 Python网络框架纵览 154
5.1 网络框架综述 155
5.1.1 网络框架及MVC架构 155
5.1.2 4种Python网络框架:Django、Tornado、Flask、Twisted 156
5.2 开发环境准备 157
5.2.1 使用Python虚环境 157
5.2.2 Windows环境下的安装 159
5.2.3 Linux环境下的安装 162
5.2.4 easy_install与pip的使用 163
5.3 Web服务器 165
5.3.1 实战演练1:WSGI接口 165
5.3.2 实战演练2:Linux+Nginx+uWSGI配置 166
5.3.3 实战演练3:建立安全的HTTPS网站 172
5.4 本章总结 174
第6章 企业级开发框架——Django 175
6.1 Django综述 176
6.1.1 Django的特点及结构 176
6.1.2 安装Django 177
6.2 实战演练:开发Django站点 177
6.2.1 建立项目 177
6.2.2 建立应用 178
6.2.3 基本视图 179
6.2.4 内置Web服务器 181
6.2.5 模型类 182
6.2.6 表单视图 185
6.2.7 使用管理界面 188
6.3 Django模型层 190
6.3.1 基本操作 190
6.3.2 关系操作 198
6.3.3 面向对象ORM 202
6.4 Django视图层 205
6.4.1 URL映射 205
6.4.2 视图函数 211
6.4.3 模板语法 213
6.5 使用Django表单 218
6.5.1 表单绑定状态 219
6.5.2 表单数据验证 219
6.5.3 检查变更字段 222
6.6 个性化管理员站点 222
6.6.1 模型 222
6.6.2 模板 225
6.6.3 站点 227
6.7 本章总结 229
第7章 高并发处理框架——Tornado 230
7.1 Tornado概述 231
7.1.1 Tornado介绍 231
7.1.2 安装Tornado 232
7.2 异步及协程基础 232
7.2.1 同步与异步I/O 233
7.2.2 Python关键字yield 234
7.2.3 协程 236
7.3 实战演练:开发Tornado网站 239
7.3.1 网站结构 240
7.3.2 路由解析 241
7.3.3 RequestHandler 242
7.3.4 异步化及协程化 248
7.4 用户身份验证框架 250
7.4.1 安全Cookie机制 250
7.4.2 用户身份认证 252
7.4.3 防止跨站攻击 254
7.5 HTML5 WebSocket概念及应用 256
7.5.1 WebSocket概念 256
7.5.2 服务端编程 259
7.5.3 客户端编程 261
7.6 Tornado网站部署 263
7.6.1 调试模式 264
7.6.2 静态文件 265
7.6.3 运营期配置 267
7.7 本章总结 269
第8章 支持快速建站的框架——Flask 270
8.1 Flask综述 271
8.1.1 Flask的特点 271
8.1.2 在Windows中的安装 272
8.1.3 在Linux及Mac中的安装 274
8.2 实战演练:开发Flask站点 276
8.2.1 Hello World程序 276
8.2.2 模板渲染 278
8.2.3 重定向和错误处理 280
8.3 路由详解 281
8.3.1 带变量的路由 281
8.3.2 HTTP方法绑定 283
8.3.3 路由地址反向生成 284
8.4 使用Context上下文 285
8.4.1 会话上下文 286
8.4.2 应用全局对象 287
8.4.3 请求上下文 289
8.4.4 回调接入点 291
8.5 Jinja2模板编程 292
8.5.1 Jinja2语法 293
8.5.2 使用过滤器 294
8.5.3 流程控制 297
8.5.4 模板继承 300
8.6 SQLAlchemy数据库编程 303
8.6.1 SQLAlchemy入门 303
8.6.2 主流数据库的连接方式 307
8.6.3 查询条件设置 308
8.6.4 关系操作 311
8.6.5 级联 315
8.7 WTForm表单编程 321
8.7.1 定义表单 321
8.7.2 显示表单 322
8.7.3 获取表单数据 324
8.8 本章总结 326
第9章 底层自定义协议网络框架——Twisted 327
9.1 Twisted综述 328
9.1.1 框架概况 328
9.1.2 安装Twisted及周边组件 328
9.2 实战演练:开发TCP广播系统 330
9.2.1 广播服务器 330
9.2.2 广播客户端 332
9.3 UDP编程技术 335
9.3.1 实战演练1:普通UDP 335
9.3.2 实战演练2:Connected UDP 338
9.3.3 实战演练3:组播技术 340
9.4 Twisted高级话题 341
9.4.1 延迟调用 341
9.4.2 使用多线程 347
9.4.3 安全信道 349
9.5 本章总结 352
第3篇 实战项目
第10章 实战1:用Django+PostgreSQL开发移动Twitter 354
10.1 项目概览 355
10.1.1 项目来源(GitHub) 355
10.1.2 安装PostgreSQL数据库并配置Python环境 356
10.1.3 项目结构 358
10.2 页面框架设计 360
10.2.1 基模板文件 360
10.2.2 手机大小自适应(jQuery技术) 363
10.2.3 文本国际化 364
10.2.4 网站页面一览 367
10.3 用户注册及登录 368
10.3.1 页面设计 368
10.3.2 模型层 370
10.3.3 视图设计 371
10.4 手机消息的发布和浏览 376
10.4.1 页面设计 376
10.4.2 模型层 381
10.4.3 视图设计 382
10.5 社交朋友圈 385
10.5.1 页面设计 385
10.5.2 模型层 387
10.5.3 视图设计 388
10.6 个人资料配置 392
10.6.1 页面设计 392
10.6.2 图片上传(第三方库PIL) 394
10.7 Web管理站点 397
10.7.1 定义可管理对象 397
10.7.2 配置管理员 398
10.7.3 使用管理站点 398
10.8 本章总结 400
第11章 实战2:用Tornado+jQuery开发WebSocket聊天室 401
11.1 聊天室概览 402
11.1.1 项目介绍 402
11.1.2 安装和代码结构 403
11.2 消息通信 404
11.2.1 建立网站 404
11.2.2 WebSocket服务器 407
11.2.3 WebSocket客户端 408
11.3 聊天功能 411
11.3.1 昵称 411
11.3.2 消息来源 413
11.3.3 历史消息缓存 415
11.4 用户面板 416
11.4.1 用CSS定义用户列表 416
11.4.2 服务器通知 418
11.4.3 响应服务器动态通知(jQuery动态编程) 419
11.5 本章总结 420
第12章 实战3:用Flask+Bootstrap+Restful开发学校管理系统 421
12.1 系统概览 422
12.1.1 来源及功能 422
12.1.2 项目安装 423
12.1.3 代码结构 425
12.2 数据模型设计 427
12.2.1 E-R图设计 427
12.2.2 SQLAlchemy建模 429
12.3 响应式页面框架设计 435
12.3.1 基模板组件引用 435
12.3.2 响应式导航 439
12.4 新建学校 441
12.4.1 WTForm表单 441
12.4.2 视图及文件上传 443
12.4.3 响应式布局 445
12.5 学校管理 447
12.5.1 查询视图 447
12.5.2 分页模板 450
12.6 Restful接口 453
12.6.1 Restful概念 453
12.6.2 Restless插件 454
12.6.3 开发Restful接口 457
12.7 本章总结 461
第13章 实战4:用Twisted+SQLAlchemy+ZeroMQ开发跨平台物联网消息网关 463
13.1 项目概况 464
13.1.1 功能定义 464
13.1.2 安装和测试 465
13.1.3 项目结构 468
13.2 项目设计 469
13.2.1 SQLAlchmey建模 469
13.2.2 TCP接口设计 474
13.3 通信引擎 476
13.3.1 跨平台安全端口 477
13.3.2 管理连接 478
13.3.3 收发数据 479
13.3.4 TCP流式分包 482
13.3.5 异步执行 484
13.4 协议编程 486
13.4.1 执行命令 486
13.4.2 struct解析字节流 489
13.4.3 序列号生成 490
13.4.4 连接保持 491
13.4.5 发送Response 492
13.4.6 错误机制 494
13.5 ZeroMQ集群 496
13.5.1 内部接口设计 496
13.5.2 PUB/SUB通信模型编程 498
13.6 本章总结 499

本书勘误

印次
  • 页码:3  •  行数:18  •  印次: 1

    Directionary这里应该是Dictionary

    tianshoulong 提交于 2016/11/22 20:51:07
    董英 确认于 2016/12/12 9:58:11
  • 页码:20  •  行数:12  •  印次: 1

    原组,应该是元组

    tianshoulong 提交于 2016/11/22 21:12:00
    董英 确认于 2016/12/12 9:59:10
  • 页码:20  •  行数:13  •  印次: 1

    原组应该是元组

    tianshoulong 提交于 2016/11/22 21:12:31
    陈晓猛 确认于 2016/12/12 11:14:10
  • 页码:20  •  行数:30  •  印次: 1

    元祖错误,应该是元组

    tianshoulong 提交于 2016/11/22 21:15:20
    陈晓猛 确认于 2016/12/12 11:14:00
  • 页码:20  •  行数:2  •  印次: 5

    原文:*a = cmp(12.32, 43) #结果为1*
    应该是-1吧

    董小迪 提交于 2017/11/1 22:39:23
    董英 确认于 2019/9/9 9:28:18

读者评论

  • 书中的错误真的太影响学习的速度啦,希望出版社让作者们在书籍出版前认真检查所有源代码的正确性,好吗?

    晴朗天空发表于 2019/3/16 20:26:03
  • 第P196页的代码也有问题:
    pub_date__in 应该是 id__in 才对吧?

    晴朗天空发表于 2019/3/16 20:22:51
  • 天啊,书中的程序代码运行出错了!请尽快纠正后发邮件告诉我如何修改好吗?挺让人无奈的,报错了无法看下去了!

    在第6章P187页中的代码有问题:

    return HttpResponseRedirect(reverse("app.views.welcome"))
    

    运行就会报错:

    NoReverseMatch at /app/moments_input
    Reverse for 'app.views.welcome' not found. 'app.views.welcome' is not a valid view function or pattern name.
    

    如下图:

    晴朗天空发表于 2019/3/16 20:20:48
    • 如果已经修复,请更新本书的源代码下载文件,好吗?更新后,请发邮件通知一下我,可以吗?谢谢了

      晴朗天空发表于 2019/3/16 20:24:26
    • 改成:return HttpResponseRedirect(reverse(welcome)) 就OK啦!

      tianming100038发表于 2019/4/17 16:55:51
  • 源代码中的chapter13中没有requirement.txt,此文件在书中介绍为项目所有的依赖库目录。

    188xuhe发表于 2019/1/6 20:00:39
  • 10.1项目是开发tmitter还是Twitter?内容质量一般

    qqadadas发表于 2018/12/25 16:31:14

下载资源

电子书版本

  • Epub
  • Mobi

相关博文

  • Python网络框架——Web服务器

    Python网络框架——Web服务器

    管理员账号 2016-11-11

    小编说:Web服务器是连接用户浏览器与Python服务器端程序的中间节点,在网站建立的过程中起着重要的作用。目前最主流的Web服务器包括Nginx、Apache、lighthttpd、IIS等。Python服务器端程序在Linux平台下...

    管理员账号 2016-11-11
    1918 1 0 0

推荐用户

相关图书

看漫画学Python:有趣、有料、好玩、好用(全彩修订版)

关东升 著 赵大羽 绘 (作者)

ython是一门既简单又强大的编程语言,被广泛应用于数据分析、大数据、网络爬虫、自动化运维、科学计算和人工智能等领域。Python也越来越重要,成为国家计算机等...

 

看漫画学Python 2:有趣、有料、好玩、好用(全彩进阶版)

关东升 ,赵大羽 (作者)

本书是《看漫画学Python》的进阶版本,继续秉承有趣、有料、好玩、好用的理念,并继续采用《看漫画学Python》一书中3个不同的漫画人物角色,通过这3个角色之...

 

趣玩Python:自动化办公真简单(双色+视频版)

本书以数据收集→数据清洗→数据分析→数据可视化→根据数据可视化结果(即图表)做决策为脉络,介绍Python在实际工作场景中的应用,侧重于用Python解决工作中...

 

软件交付通识

董越 (作者)

软件交付过程是指在编程序改代码之后,直到将软件发布给用户使用之前的一系列活动,如提交、集成、构建、部署、测试等。本书作为通识类图书,对软件交付过程的各个方面进行...

¥89.00

分布式系统与一致性

陈东明 (作者)

一致性是非常重要的分布式技术。众所周知,分布式系统有很多特性,如可用性、可靠性等,这些特性多多少少会与一致性产生关系,受到一致性的影响。要全面研究、掌握分布式技...

¥79.00

人人都是产品经理(案例版):淘宝十年产品事

陶英琪 (作者)

做产品经理需要不断成长。然而回顾漫长的产品发展史,我们总会发现:有太多犯过的错误在反复出现,每一次都会有人掉入同样的“坑”。大量看似充满新意的点子、“前无古人”...

¥69.00