.5异常 50
1.5.1处理异常 50
1.5.2自定义异常 52
1.6面向对象编程 53
1.6.1什么是面向对象 53
1.6.2类和对象 55
1.6.3继承 62
1.7本章总结 65
第2章 Web编程之网络基础 66
2.1TCP/IP网络 67
2.1.1计算机网络综述 67
2.1.2TCP和UDP 71
2.1.3C/S及B/S架构 74
2.2HTTP 75
2.2.1HTTP流程 76
2.2.2HTTP消息结构 77
2.2.3HTTP请求方法 81
2.2.4基于HTTP的网站开发 81
2.3Socket编程 83
2.3.1Socket基础 83
2.3.2实战演练:SocketTCP原语 84
2.3.3实战演练:SocketUDP原语 88
2.4本章总结 89
第3章 客户端的编程技术 90
3.1HTML 91
3.1.1HTML介绍 91
3.1.2HTML基本标签 94
3.1.3HTML表单 100
3.2CSS 103
3.2.1样式声明方式 104
3.2.2CSS语法 105
3.2.3基于CSS+DIV的页面布局 107
3.3JavaScript 109
3.3.1在HTML中嵌入JavaScript 109
3.3.2JavaScript的基本语法 110
3.3.3DOM及其读写 115
3.3.4window对象 119
3.3.5HTML事件处理 122
3.4jQuery 125
3.4.1使用jQuery 125
3.4.2选择器 126
3.4.3行为 127
3.5本章总结 131
第4章 数据库及ORM 132
4.1数据库概念 132
4.1.1Web开发中的数据库 133
4.1.2关系数据库建模 135
4.2关系数据库编程 138
4.2.1常用SQL语句 138
4.2.2实战演练:在Python中应用SQL 144
4.3ORM编程 146
4.3.1ORM理论基础 146
4.3.2PythonORM库介绍 148
4.3.3实战演练:Peewee库编程 149
4.4本章总结 152
中篇 Python框架
第5章 Python网络框架纵览 154
5.1网络框架综述 155
5.1.1网络框架及MVC架构 155
5.1.24种Python网络框架:Django、Tornado、Flask、Twisted 156
5.2开发环境准备 157
5.2.1easy_install与pip的使用 157
5.2.2使用Python虚环境virtualenv 159
5.3Web服务器 161
5.3.1实战演练1:WSGI 161
5.3.2实战演练2:Linux+Nginx+uWSGI配置 163
5.3.3实战演练3:建立安全的HTTPS网站 169
5.4本章总结 171
第6章 企业级开发框架——Django 172
6.1Django综述 173
6.1.1Django的特点及结构 173
6.1.2安装Django3 174
6.2实战演练:开发Django站点 174
6.2.1建立项目 174
6.2.2建立应用 176
6.2.3基本视图 177
6.2.4内置Web服务器 178
6.2.5模型类 179
6.2.6表单视图 182
6.2.7使用管理界面 186
6.3Django模型层 187
6.3.1基本操作 187
6.3.2关系操作 195
6.3.3面向对象ORM 200
6.4Django视图层 203
6.4.1URL映射 203
6.4.2视图函数 209
6.4.3模板语法 210
6.5使用Django表单 216
6.5.1表单绑定状态 216
6.5.2表单数据验证 217
6.5.3检查变更字段 219
6.6个性化管理员站点 220
6.6.1模型 220
6.6.2模板 223
6.6.3站点 225
6.7本章总结 227
第7章 高并发处理框架——Tornado 228
7.1Tornado概述 229
7.1.1Tornado介绍 229
7.1.2安装Tornado 229
7.2异步及协程基础 230
7.2.1同步与异步I/O 230
7.2.2可迭代(Iterable)与迭代器(Iterator) 231
7.2.3用yield定义生成器(Generator) 233
7.2.4协程 235
7.3实战演练:开发Tornado网站 239
7.3.1网站结构 239
7.3.2路由解析 240
7.3.3RequestHandler 242
7.3.4异步协程化 247
7.4用户身份验证框架 248
7.4.1安全Cookie机制 248
7.4.2用户身份认证 250
7.4.3防止跨站攻击 252
7.5HTML5WebSocket的概念及应用 255
7.5.1WebSocket的概念 255
7.5.2服务端编程 257
7.5.3客户端编程 260
7.6Tornado网站部署 262
7.6.1调试模式 262
7.6.2静态文件 264
7.6.3运营期配置 266
7.7本章总结 268
第8章 支持快速建站的框架——Flask 269
8.1Flask综述 270
8.1.1Flask的特点 270
8.1.2安装Flask、SQLAlchemy和WTForm 271
8.2实战演练:开发Flask站点 272
8.2.1HelloWorld程序 272
8.2.2模板渲染 274
8.2.3重定向和错误处理 276
8.3路由详解 277
8.3.1带变量的路由 277
8.3.2HTTP方法绑定 279
8.3.3路由地址反向生成 280
8.4使用上下文 282
8.4.1会话上下文 282
8.4.2应用全局对象 283
8.4.3请求上下文 285
8.4.4回调接入点 287
8.5Jinja2模板编程 289
8.5.1Jinja2语法 289
8.5.2使用过滤器 291
8.5.3流程控制 294
8.5.4模板继承 297
8.6SQLAlchemy数据库编程 300
8.6.1SQLAlchemy入门 300
8.6.2主流数据库的连接方式 304
8.6.3查询条件设置 304
8.6.4关系操作 307
8.6.5级联 312
8.7WTForm表单编程 318
8.7.1定义表单 318
8.7.2显示表单 319
8.7.3获取表单数据 321
8.8本章总结 323
第9章 底层自定义协议网络框架——Twisted 324
9.1Twisted综述 325
9.1.1框架概况 325
9.1.2安装Twisted及周边组件 325
9.2实战演练:开发TCP广播系统 327
9.2.1广播服务器 327
9.2.2广播客户端 329
9.3UDP编程技术 332
9.3.1实战演练1:普通UDP 333
9.3.2实战演练2:ConnectedUDP 336
9.3.3实战演练3:组播技术 337
9.4Twisted高级话题 339
9.4.1延迟调用 339
9.4.2使用多线程 345
9.4.3安全信道 347
9.5本章总结 351
下篇 Python框架实战
第10章 实战1:用Django+PostgreSQL开发移动Twitter 354
10.1项目概览 355
10.1.1项目来源(GitHub) 355
10.1.2安装PostgreSQL数据库并配置Python环境 356
10.1.3项目结构 359
10.2页面框架设计 361
10.2.1基模板文件 361
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模型层 388
10.5.3视图设计 389
10.6个人资料配置 392
10.6.1页面设计 392
10.6.2图片上传(第三方库PIL) 394
10.7Web管理站点 397
10.7.1定义可管理对象 397
10.7.2配置管理员 398
10.7.3使用管理站点 399
10.8本章总结 400
第11章 实战2:用Tornado+jQuery开发WebSocket聊天室 402
11.1聊天室概览 403
11.1.1项目介绍 403
11.1.2安装和代码结构 404
11.2消息通信 405
11.2.1建立网站 405
11.2.2WebSocket服务器 408
11.2.3WebSocket客户端 409
11.3聊天功能 412
11.3.1昵称 412
11.3.2消息来源 414
11.3.3历史消息缓存 416
11.4用户面板 417
11.4.1用CSS定义用户列表 417
11.4.2服务器通知 419
11.4.3响应服务器动态通知(jQuery动态编程) 420
11.5本章总结 421
第12章 实战3:用Flask+Bootstrap+Restful开发学校管理系统 422
12.1系统概览 423
12.1.1项目来源及功能 423
12.1.2项目安装 424
12.1.3代码结构 427
12.2数据模型设计 429
12.2.1E-R图设计 429
12.2.2SQLAlchemy建模 431
12.3响应式页面框架设计 437
12.3.1基模板组件引用 437
12.3.2响应式导航 440
12.4新建学校 443
12.4.1WTForm表单 443
12.4.2视图及文件上传 445
12.4.3响应式布局 446
12.5学校管理 449
12.5.1查询视图 449
12.5.2分页模板 452
12.6Restful接口 454
12.6.1Restful概念 454
12.6.2Restless插件 455
12.6.3开发Restful接口 459
12.7本章总结 464
第13章 实战4:用Twisted+SQLAlchemy+ZeroMQ开发跨平台物联网消息网关 465
13.1项目概况 466
13.1.1功能定义 466
13.1.2安装和测试 467
13.1.3项目结构 471
13.2项目设计 472
13.2.1SQLAlchmey建模 472
13.2.2TCP接口设计 476
13.3通信引擎 479
13.3.1跨平台安全端口 479
13.3.2管理连接 481
13.3.3收发数据 482
13.3.4TCP流式分包 485
13.3.5异步执行 487
13.4协议编程 488
13.4.1执行命令 489
13.4.2struct解析字节流 491
13.4.3序列号生成 493
13.4.4连接保持 494
13.4.5发送Response 495
13.4.6错误机制 497
13.5ZeroMQ集群 499
13.5.1内部接口设计 499
13.5.2PUB/SUB通信模型编程 501
13.6本章总结 502