Python高效开发实战:Django、Tornado、Flask、Twisted(第2版)

Python高效开发实战:Django、Tornado、Flask、Twisted(第2版)
作 者: 刘长龙
出版社: 电子工业出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  刘长龙,复旦大学信息管理学士学位、上海交通大学计算机技术硕士学位,从事计算机软件研发十余年。对应用软件开发有较广泛深入了解,用C++、Python等技术主持负责过电信级实时计费系统、客户管理系统、智能家居、物联网云平台的研究和设计开发工作。在不写作的时候,业余时间喜欢跑步和游泳。

内容简介

也许你听说过全栈工程师,他们善于设计系统架构,精通数据库建模、通用网络协议、后端并发处理、前端界面设计,在学术研究或工程项目上能独当一面。通过对Python 3及相关Web框架的学习和实践,你就可以成为这样的全能型人才。本书分为3篇:上篇是Python基础,带领初学者实践Python开发环境,掌握基本语法,同时对网络协议、Web客户端技术、数据库建模编程等网络编程基础进行深入浅出的学习;中篇是Python框架,学习当前*流行的Python Web框架,即Django、Tornado、Flask和Twisted,达到对各种Python网络技术融会贯通的目的;下篇是Python框架实战,分别对4种框架进行项目实践,利用其各自的特点开发适用于不同场景的网络程序。本书内容精练、重点突出、实例丰富、讲解通俗,是广大网络应用设计和开发人员不可多得的一本参考书。本书非常适合大中专院校师生学习和阅读,也可作为计算机培训机构的教材。

图书目录

目  录

上篇 Python基础

第1章 Python基础知识\t2

1.1 Python综述\t3

1.1.1 了解Python的特性及版本\t3

1.1.2 安装Python\t5

1.1.3 使用Python原生编辑器\t8

1.1.4 使用Eclipse开发环境\t9

1.1.5 Python编程入门――解决“斐波那契数列”问题\t14

1.2 数据类型\t17

1.2.1 Number类型\t17

1.2.2 Sequence类型簇\t21

1.2.3 string与bytes\t23

1.2.4 tuple类型\t30

1.2.5 list类型\t31

1.2.6 set类型\t32

1.2.7 dict类型\t35

1.3 流程控制\t37

1.3.1 程序块与作用域\t37

1.3.2 判断语句\t38

1.3.3 循环语句\t40

1.3.4 语句嵌套\t42

1.4 函数\t43

1.4.1 定义与使用\t43

1.4.2 变长参数\t45

1.4.3 匿名函数\t47

1.5 异常\t49

1.5.1 处理异常\t49

1.5.2 自定义异常\t51

1.6 面向对象编程\t52

1.6.1 什么是面向对象\t52

1.6.2 类和对象\t54

1.6.3 继承\t61

1.7 本章总结\t64

第2章 Web编程之网络基础\t65

2.1 TCP/IP网络\t66

2.1.1 计算机网络综述\t66

2.1.2 TCP和UDP\t70

2.1.3 C/S及B/S架构\t73

2.2 HTTP\t74

2.2.1 HTTP流程\t75

2.2.2 HTTP消息结构\t76

2.2.3 HTTP请求方法\t80

2.2.4 基于HTTP的网站开发\t80

2.3 Socket编程\t82

2.3.1 Socket基础\t82

2.3.2 实战演练:Socket TCP原语\t83

2.3.3 实战演练:Socket UDP原语\t87

2.4 本章总结\t88

第3章 客户端的编程技术\t89

3.1 HTML\t90

3.1.1 HTML介绍\t90

3.1.2 HTML基本标签\t93

3.1.3 HTML表单\t99

3.2 CSS\t102

3.2.1 样式声明方式\t103

3.2.2 CSS语法\t104

3.2.3 基于CSS+DIV的页面布局\t106

3.3 JavaScript\t108

3.3.1 在HTML中嵌入JavaScript\t108

3.3.2 JavaScript的基本语法\t109

3.3.3 DOM及其读写\t115

3.3.4 window对象\t118

3.3.5 HTML事件处理\t121

3.4 jQuery\t124

3.4.1 使用jQuery\t124

3.4.2 选择器\t125

3.4.3 行为\t126

3.5 本章总结\t130

第4章 数据库及ORM\t131

4.1 数据库概念\t131

4.1.1 Web开发中的数据库\t132

4.1.2 关系数据库建模\t134

4.2 关系数据库编程\t137

4.2.1 常用SQL语句\t137

4.2.2 实战演练:在Python中应用SQL\t143

4.3 ORM编程\t145

4.3.1 ORM理论基础\t145

4.3.2 Python ORM库介绍\t147

4.3.3 实战演练:Peewee库编程\t148

4.4 本章总结\t151

中篇 Python框架

第5章 Python网络框架纵览\t154

5.1 网络框架综述\t155

5.1.1 网络框架及MVC架构\t155

5.1.2 4种Python网络框架:Django、Tornado、Flask、Twisted\t156

5.2 开发环境准备\t157

5.2.1 easy_install与pip的使用\t157

5.2.2 使用Python虚环境virtualenv\t159

5.3 Web服务器\t161

5.3.1 实战演练1:WSGI接口\t161

5.3.2 实战演练2:Linux+Nginx+uWSGI配置\t162

5.3.3 实战演练3:建立安全的HTTPS网站\t168

5.4 本章总结\t170

第6章 企业级开发框架――Django\t171

6.1 Django综述\t172

6.1.1 Django的特点及结构\t172

6.1.2 安装Django 2\t173

6.2 实战演练:开发Django站点\t173

6.2.1 建立项目\t173

6.2.2 建立应用\t174

6.2.3 基本视图\t175

6.2.4 内置Web服务器\t177

6.2.5 模型类\t178

6.2.6 表单视图\t181

6.2.7 使用管理界面\t184

6.3 Django模型层\t186

6.3.1 基本操作\t186

6.3.2 关系操作\t194

6.3.3 面向对象ORM\t198

6.4 Django视图层\t201

6.4.1 URL映射\t201

6.4.2 视图函数\t207

6.4.3 模板语法\t209

6.5 使用Django表单\t215

6.5.1 表单绑定状态\t215

6.5.2 表单数据验证\t215

6.5.3 检查变更字段\t218

6.6 个性化管理员站点\t219

6.6.1 模型\t219

6.6.2 模板\t221

6.6.3 站点\t223

6.7 本章总结\t225

第7章 高并发处理框架――Tornado\t226

7.1 Tornado概述\t227

7.1.1 Tornado介绍\t227

7.1.2 安装Tornado\t228

7.2 异步及协程基础\t228

7.2.1 同步与异步I/O\t228

7.2.2 可迭代(Iterable)与迭代器(Iterator)\t229

7.2.3 用yield定义生成器(Generator)\t231

7.2.4 协程\t233

7.3 实战演练:开发Tornado网站\t237

7.3.1 网站结构\t237

7.3.2 路由解析\t238

7.3.3 RequestHandler\t240

7.3.4 异步化及协程化\t245

7.4 用户身份验证框架\t247

7.4.1 安全Cookie机制\t247

7.4.2 用户身份认证\t249

7.4.3 防止跨站攻击\t251

7.5 HTML 5 WebSocket概念及应用\t253

7.5.1 WebSocket概念\t253

7.5.2 服务端编程\t256

7.5.3 客户端编程\t259

7.6 Tornado网站部署\t261

7.6.1 调试模式\t261

7.6.2 静态文件\t263

7.6.3 运营期配置\t265

7.7 本章总结\t267

第8章 支持快速建站的框架――Flask\t268

8.1 Flask综述\t269

8.1.1 Flask的特点\t269

8.1.2 安装Flask、SQLAlchemy和WTForm\t270

8.2 实战演练:开发Flask站点\t271

8.2.1 Hello World程序\t272

8.2.2 模板渲染\t273

8.2.3 重定向和错误处理\t275

8.3 路由详解\t276

8.3.1 带变量的路由\t276

8.3.2 HTTP方法绑定\t278

8.3.3 路由地址反向生成\t279

8.4 使用Context上下文\t281

8.4.1 会话上下文\t281

8.4.2 应用全局对象\t282

8.4.3 请求上下文\t284

8.4.4 回调接入点\t286

8.5 Jinja2模板编程\t288

8.5.1 Jinja2语法\t288

8.5.2 使用过滤器\t290

8.5.3 流程控制\t293

8.5.4 模板继承\t296

8.6 SQLAlchemy数据库编程\t298

8.6.1 SQLAlchemy入门\t299

8.6.2 主流数据库的连接方式\t303

8.6.3 查询条件设置\t303

8.6.4 关系操作\t306

8.6.5 级联\t310

8.7 WTForm表单编程\t316

8.7.1 定义表单\t317

8.7.2 显示表单\t318

8.7.3 获取表单数据\t319

8.8 本章总结\t321

第9章 底层自定义协议网络框架――Twisted\t322

9.1 Twisted综述\t323

9.1.1 框架概况\t323

9.1.2 安装Twisted及周边组件\t323

9.2 实战演练:开发TCP广播系统\t325

9.2.1 广播服务器\t325

9.2.2 广播客户端\t327

9.3 UDP编程技术\t330

9.3.1 实战演练1:普通UDP\t330

9.3.2 实战演练2:Connected UDP\t333

9.3.3 实战演练3:组播技术\t335

9.4 Twisted高级话题\t337

9.4.1 延迟调用\t337

9.4.2 使用多线程\t343

9.4.3 安全信道\t345

9.5 本章总结\t348

下篇 Python框架实战

第10章 实战1:用Django+PostgreSQL开发移动Twitter\t352

10.1 项目概览\t353

10.1.1 项目来源(GitHub)\t353

10.1.2 安装PostgreSQL数据库并配置Python环境\t354

10.1.3 项目结构\t356

10.2 页面框架设计\t358

10.2.1 基模板文件\t359

10.2.2 手机大小自适应(jQuery技术)\t361

10.2.3 文本国际化\t362

10.2.4 网站页面一览\t365

10.3 用户注册及登录\t366

10.3.1 页面设计\t366

10.3.2 模型层\t368

10.3.3 视图设计\t369

10.4 手机消息的发布和浏览\t374

10.4.1 页面设计\t374

10.4.2 模型层\t379

10.4.3 视图设计\t380

10.5 社交朋友圈\t383

10.5.1 页面设计\t383

10.5.2 模型层\t385

10.5.3 视图设计\t386

10.6 个人资料配置\t389

10.6.1 页面设计\t390

10.6.2 图片上传(第三方库PIL)\t391

10.7 Web管理站点\t395

10.7.1 定义可管理对象\t395

10.7.2 配置管理员\t396

10.7.3 使用管理站点\t396

10.8 本章总结\t398

第11章 实战2:用Tornado+jQuery开发WebSocket聊天室\t399

11.1 聊天室概览\t400

11.1.1 项目介绍\t400

11.1.2 安装和代码结构\t401

11.2 消息通信\t402

11.2.1 建立网站\t402

11.2.2 WebSocket服务器\t405

11.2.3 WebSocket客户端\t406

11.3 聊天功能\t409

11.3.1 昵称\t409

11.3.2 消息来源\t411

11.3.3 历史消息缓存\t413

11.4 用户面板\t414

11.4.1 用CSS定义用户列表\t414

11.4.2 服务器通知\t416

11.4.3 响应服务器动态通知(jQuery动态编程)\t417

11.5 本章总结\t418

第12章 实战3:用Flask+Bootstrap+Restful开发学校管理系统\t419

12.1 系统概览\t420

12.1.1 项目来源及功能\t420

12.1.2 项目安装\t421

12.1.3 代码结构\t424

12.2 数据模型设计\t425

12.2.1 E-R图设计\t426

12.2.2 SQLAlchemy建模\t428

12.3 响应式页面框架设计\t434

12.3.1 基模板组件引用\t434

12.3.2 响应式导航\t437

12.4 新建学校\t440

12.4.1 WTForm表单\t440

12.4.2 视图及文件上传\t442

12.4.3 响应式布局\t443

12.5 学校管理\t446

12.5.1 查询视图\t446

12.5.2 分页模板\t449

12.6 Restful接口\t451

12.6.1 Restful概念\t451

12.6.2 Restless插件\t452

12.6.3 开发Restful接口\t456

12.7 本章总结\t461

第13章 实战4:用Twisted+SQLAlchemy+ ZeroMQ开发跨平台物联网消息网关\t462

13.1 项目概况\t463

13.1.1 功能定义\t463

13.1.2 安装和测试\t464

13.1.3 项目结构\t467

13.2 项目设计\t469

13.2.1 SQLAlchmey建模\t469

13.2.2 TCP接口设计\t473

13.3 通信引擎\t476

13.3.1 跨平台安全端口\t476

13.3.2 管理连接\t478

13.3.3 收发数据\t479

13.3.4 TCP流式分包\t482

13.3.5 异步执行\t484

13.4 协议编程\t486

13.4.1 执行命令\t486

13.4.2 struct解析字节流\t489

13.4.3 序列号生成\t490

13.4.4 连接保持\t491

13.4.5 发送Response\t492

13.4.6 错误机制\t494

13.5 ZeroMQ集群\t496

13.5.1 内部接口设计\t496

13.5.2 PUB/SUB通信模型编程\t498

13.6 本章总结\t499