Python Web开发从入门到精通循序渐进地讲解了Python Web开发的核心知识,并通过具体实例的实现过程演示了Web开发程序的流程。Python Web开发从入门到精通共15章,内容包括Python语言基础、Tornado Web开发基础、开发动态Tornado Web程序、开发异步Web程序、构建安全的Tornado Web、Django Web开发基础、Django数据库操作、Django典型应用开发实战、Django高级开发实战、Flask Web开发基础、使用Flask模板、实现表单操作、Flask数据库操作、Flask高级实战和在线博客+商城系统。Python Web开发从入门到精通简洁而不失技术深度,内容丰富全面。不仅易于阅读,同时涵盖了其他同类图书中很少涉及的参考资料,是学习Python Web开发的实用教程。
Python Web开发从入门到精通适用于已了解Python语言基础语法,希望进一步提高自己Python开发水平的读者,还可作为大中专院校和培训学校相关专业师生的学习参考用书。
目录
前言
第1章 Python语言基础1
1.1 Python语言介绍1
1.1.1 Python语言的地位1
1.1.2 Python语言的优点2
1.2 安装Python3
1.2.1 在Windows系统中下载并安装Python3
1.2.2 在macOS系统中下载并安装Python6
1.2.3 在Linux系统中下载并安装Python6
1.3 Python开发工具介绍7
1.3.1 使用Python自带的开发工具IDLE7
1.3.2 本书的建议:使用最流行工具PyCharm8
1.4 认识第一段Python程序:人生苦短,我用Python!12
1.4.1 使用IDLE编码并运行12
1.4.2 使用命令行方式运行Python程序13
1.4.3 使用交互式方式运行Python程序13
1.4.4 使用PyCharm实现第一个Python程序14
第2章 Tornado Web开发基础18
2.1 Tornado框架基础18
2.1.1 Tornado框架介绍18
2.1.2 安装Tornado19
2.2 编写第一个Tornado程序20
2.2.1 一个基本的Tornado框架程序20
2.2.2 获取请求参数21
2.2.3 使用Cookie23
2.2.4 实现URL转向25
2.3 使用表单收集数据26
2.4 使用模板让Web更加美观27
2.4.1 会员注册和登录验证系统27
2.4.2 使用模板函数和CSS30
2.4.3 会员登录和退出系统33
2.5 使用静态资源文件37
2.5.1 照片展示37
2.5.2 时钟系统37
2.6 使用块扩展模板40
2.6.1 块40
2.6.2 模板中的块41
2.7 使用UI模块43
2.7.1 UI模块介绍43
2.7.2 嵌入JavaScript和CSS45
2.8 自动转义和模板格式化47
2.8.1 自动转义47
2.8.2 在线留言板系统48
2.8.3 图书展示系统51
第3章 开发动态Tornado Web程序56
3.1 使用MongoDB数据库实现持久化Web服务56
3.1.1 搭建MongoDB数据库环境56
3.1.2 使用Tornado操作MongoDB数据库58
3.1.3 动态图书管理系统60
3.2 使用MySQL数据库实现持久化Web服务66
3.2.1 搭建PyMySQL数据库环境66
3.2.2 简易会员登录系统67
3.3 使用ORM实现持久化Web服务69
3.3.1 Python和ORM69
3.3.2 使用SQLAlchemy70
3.4 使用MariaDB数据库实现持久化Web服务74
3.4.1 搭建MariaDB数据库环境74
3.4.2 在Python程序中使用MariaDB数据库77
3.4.3 使用Tornado+MariaDB开发简易博客系统77
第4章 开发异步Web程序85
4.1 同步和异步基础85
4.1.1 同步处理85
4.1.2 异步处理86
4.1.3 Python中的同步和异步处理86
4.2 Tornado的异步Web请求92
4.2.1 Tornado的异步处理机制92
4.2.2 Tornado异步处理相关装饰器95
4.3 Tornado长轮询100
4.3.1 长轮询介绍100
4.3.2 开发一个购物车程序101
4.4 Tornado与WebSocket106
4.4.1 WebSocket介绍106
4.4.2 Tornado中的WebSocket模块107
4.4.3 使用WebSocket实现购物车功能108
4.5 Tornado+WebSocket在线聊天室110
4.5.1 主程序110
4.5.2 模板文件112
第5章 构建安全的Tornado Web115
5.1 Cookie安全处理115
5.1.1 Tornado中的安全Cookie115
5.1.2 使用Cookie开发一个访问计数器116
5.2 处理XSRF漏洞118
5.2.1 XSRF漏洞解析118
5.2.2 Tornado处理XSRF漏洞119
5.2.3 使用xsrf_cookies设置登录系统的安全性120
5.3 Python+Tornado+MySQL博客系统122
5.3.1 数据库连接配置122
5.3.2 URL链接处理125
5.3.3 视图控制器125
5.3.4 生成JSON信息129
5.3.5 系统安全性设置130
第6章 Django Web开发基础133
6.1 Django框架介绍133
6.2 Django开发基础134
6.2.1 搭建Django环境134
6.2.2 常用的Django命令134
6.2.3 Django的MVC设计模式136
6.3 创建第一个Django工程136
6.4 在URL中传递参数139
6.4.1 URL的运行流程139
6.4.2 两个传参方法path()和_re_path()140
6.4.3 URL的命名和方法reverse()141
6.4.4 URL指向基于类的视图142
6.4.5 实战演练:一个加法计算器142
6.5 使用视图145
6.5.1 一个最简单的视图145
6.5.2 一个博客的例子146
6.5.3 使用简易视图文件实例147
6.6 使用表单148
6.7 使用模板150
6.7.1 Django模板的基础用法150
6.7.2 模板过滤器152
6.7.3 模板标签153
6.7.4 模板继承154
第7章 Django数据库操作157
7.1 模型157
7.1.1 模型基础157
7.1.2 在DjangoWeb程序中创建SQLite3数据库159
7.2 使用QuerySet API161
7.2.1 QuerySet API基础161
7.2.2 生成新的QuerySet对象的方法162
7.2.3 使用QuerySet API操作MySQL数据库167
7.3 Django+畅言插件+MySQL实现一个精美博客系统172
7.3.1 系统配置173
7.3.2 实现模型173
7.3.3 自动创建数据表177
7.3.4 运行调试178
第8章 Django典型应用开发实战179
8.1 Django Admin管理179
8.1.1 Django Admin基础179
8.1.2 使用Django Admin开发一个博客系统183
8.2 表单的典型应用186
8.2.1 用户登录验证系统187
8.2.2 文件上传系统190
8.3 使用Ajax195
8.3.1 Ajax技术的原理195
8.3.2 无刷新计算器196
8.3.3 Ajax上传和下载系统198
8.4 使用Cookie和Session205
8.4.1 Django框架中的Cookie206
8.4.2 Django框架中的Session210
第9章 Django高级开发实战215
9.1 系统配置文件215
9.1.1 配置文件的特性215
9.1.2 基本配置216
9.2 静态文件218
9.2.1 静态文件介绍218
9.2.2 在登录表单中使用静态文件219
9.3 使用模块auth221
9.3.1 模块auth的基础221
9.3.2 使用模块auth开发一个简易新闻系统227
9.4 发送邮件231
9.4.1 django.core.mail基础231
9.4.2 使用smtplib开发邮件发送程序234
9.4.3 使用django.core.mail开发邮件发送程序235
第10章 Flask Web开发基础238
10.1 Flask开发基础238
10.1.1 Flask框架介绍238
10.1.2 Flask和Django的对比240
10.2 安装Flask241
10.2.1 快速安装Flask241
10.2.2 在虚拟环境安装Flask242
10.2.3 使用PyCharm创建虚拟环境243
10.3 初步认识Flask程序246
10.3.1 编写第一个FlaskWeb程序246
10.3.2 使用PyCharm开发Flask程序247
10.4 分析Flask程序的基本结构249
10.4.1 运行方法run()249
10.4.2 路由处理250
10.4.3 处理URL参数251
10.4.4 传递HTTP请求253
10.4.5 模拟实现最简单的用户登录系统255
10.5 使用Session和Cookie257
10.5.1 使用Cookie257
10.5.2 使用Session258
10.6 使用Flask-Script扩展260
第11章 使用Flask模板262
11.1 使用Jinja2模板引擎262
11.2 Jinja2模板的基本元素264
11.2.1 变量264
11.2.2 使用控制结构266
11.2.3 包含页和宏269
11.3 使用Flask-Bootstrap扩展272
11.3.1 Flask-Bootstrap扩展的基础273
11.3.2 在Flask Web中使用Flask-Bootstrap扩展274
11.4 使用Flask-Moment扩展本地化日期和时间276
11.4.1 Flask-Moment基础276
11.4.2 自定义错误页面277
11.4.3 使用Flask-Moment显示时间278
11.5 链接280
11.6 使用静态文件281
11.6.1 静态文件介绍281
11.6.2 使用静态文件281
11.7 可插拔视图(Pluggable Views)283
11.7.1 使用可插拔视图技术283
11.7.2 可插拔视图技术实战演练286
第12章 实现表单操作289
12.1 使用Flask-WTF扩展289
12.1.1 Flask-WTF基础289
12.1.2 使用Flask-WTF处理表单291
12.2 重定向和会话处理293
12.2.1 Flask中的重定向和会话处理293
12.2.2 实现重定向和会话处理294
12.3 Flash闪现提示295
12.3.1 Flash基础295
12.3.2 使用模板渲染flash()函数的闪现提示信息297
12.4 文件上传298
12.4.1 简易文件上传程序298
12.4.2 查看上传的图片299
12.4.3 使用Flask-WTF实现文件上传301
12.5 登录验证302
12.5.1 验证两次密码是否相等302
12.5.2 注册验证和登录验证304
第13章 Flask数据库操作309
13.1 关系型数据库和非关系型数据库309
13.1.1 关系型数据库309
13.1.2 非关系型数据库310
13.2 Python语言的数据库框架310
13.3 使用Flask-SQLAlchemy管理数据库313
13.3.1 Flask-SQLAlchemy基础313
13.3.2 定义模型314
13.3.3 关系316
13.4 使用Flask-SQLAlchemy操作数据库317
13.4.1 数据表的基本操作318
13.4.2 使用SQLAlchemy实现一个简易会员用户登录系统319
13.4.3 使用SQLAlchemy实现一个小型BBS系统321
13.5 使用Flask-Migrate实现数据库迁移325
13.5.1 创建迁移仓库325
13.5.2 创建迁移脚本325
13.5.3 更新数据库326
第14章 Flask高级实战328
14.1 收发电子邮件328
14.1.1 使用Flask-Mail 扩展328
14.1.2 使用SendGrid发送邮件332
14.1.3 异步发送电子邮件334
14.1.4 会员利用邮箱找回密码335
14.2 使用Werkzeug实现散列密码344
14.2.1 Werkzeug基础344
14.2.2 图书借阅管理系统345
14.3 使用 Flask-Login认证用户354
14.3.1 Flask-Login基础354
14.3.2 简易登录验证系统355
14.4 用户注册、登录验证系统361
14.4.1 使用WTForms处理表单361
14.4.2 路径导航和视图处理361
14.4.3 模板文件363
第15章 在线博客+商城系统365
15.1 新的项目365
15.2 项目规划分析366
15.2.1 电子商务的简要介绍366
15.2.2 在线博客+商城系统构成模块367
15.3 规划项目文件368
15.4 使用第三方库Mezzanine和Cartridge369
15.4.1 使用库Mezzanine369
15.4.2 使用库Cartridge372
15.5 实现基本功能375
15.5.1 项目配置375
15.5.2 后台模块376
15.5.3 博客模块377
15.5.4 商品展示模块383
15.6 在线购物387
15.6.1 购物车页面387
15.6.2 订单详情页面389
15.6.3 在线支付页面392
15.6.4 订单确认页面392
15.6.5 订单完成发送邮件提醒394