第1章 Web前端基础 1
1.1 什么是Web 2
1.1.1 什么是Web 2
1.1.2 Web应用程序的工作原理 2
1.2 HTML基础 3
1.2.1 HTML简介 3
实例1.1 使用PyCharm创建一个index.html文件 3
1.2.2 HTML标签和元素 5
1.2.3 HTML表单 7
1.3 CSS基础 11
1.3.1 CSS基础知识 12
1.3.2 嵌入CSS样式的三种方式 13
实例1.2 为index.html文件中的标签添加CSS样式 13
实例1.3 使用外部样式表修改index.html文件中的标签 15
1.4 JavaScript语言基础 16
1.4.1 JavaScript语法 16
1.4.2 引入JavaScript语言的两种方式 18
实例1.4 实现弹出对话框“人生苦短,我用Python” 18
实例1.5 使用外部JavaScript文件方式修改【实例1.4】 19
1.5 Bootstrap框架 20
1.5.1 Bootstrap 4安装使用 20
实例1.6 使用Bootstrap框架创建一个全屏幕宣传页面 22
1.5.2 Bootstrap 4基本使用 23
实例1.7 使用BootStrap框架为明日学院创建一个导航栏菜单 23
温 故 知 新 24
第2章 MySQL数据库基础 25
2.1 MySQL概述 26
2.2 下载安装MySQL 26
2.2.1 下载MySQL 26
2.2.2 安装MySQL 28
2.2.3 设置环境变量 28
2.2.4 启动和关闭MySQL服务 29
2.3 操作MySQL数据库 30
2.3.1 创建数据库 30
2.3.2 选择数据库 30
2.3.3 查看数据库 31
2.3.4 删除数据库 32
2.4 MySQL数据类型 32
2.4.1 数字类型 32
2.4.2 字符串类型 33
2.4.3 日期和时间类型 35
2.5 操作数据表 35
2.5.1 创建数据表 35
2.5.2 查看表结构 37
2.5.3 修改表结构 38
2.5.4 删除数据表 39
2.6 操作数据表记录 40
2.6.1 数据表记录的添加 40
2.6.2 数据表记录的查询 41
2.6.3 数据表记录的修改 41
2.6.4 数据表记录的删除 42
2.7 数据表记录的详细查询操作 43
2.7.1 selection_list 43
2.7.2 table_list 43
2.7.3 WHERE条件语句 44
2.7.4 DISTINCT关键字 44
2.7.5 对结果进行排序 45
2.7.6 LIKE运算符 45
2.7.7 CONCAT()函数 45
2.7.8 LIMIT子句 45
2.7.9 使用函数和表达式 46
2.7.10 GROUP BY子句 46
2.7.11 having子句 47
2.8 Python操作MySQL 47
2.8.1 安装PyMySQL 47
2.8.2 连接对象 47
2.8.3 游标对象 48
实例2.1 向mrsoft数据库中添加books图书表 49
2.8.4 PyMySQL实现增删改查操作 50
实例2.2 向books图书表添加图书数据 51
实例2.3 从图书表中根据价格由低到高筛选3条数据 52
温 故 知 新 53
第3章 Web框架基础 55
3.1 Web框架简介 56
3.1.1 什么是Web框架 56
3.1.2 什么是MVC 56
3.1.3 什么是ORM 56
3.1.4 什么是模板引擎 57
3.2 常用的Python Web框架 57
3.2.1 Django框架 58
3.2.2 Flask框架 58
3.2.3 Tornado框架 58
3.2.4 FastAPI框架 58
3.3 准备开发环境 58
3.3.1 创建虚拟环境 58
3.3.2 使用pip包管理工具 61
3.3.3 使用国内镜像源加速下载 63
3.4 部署腾讯云服务器 64
3.4.1 WSGI Gunicorn Nginx Supervisor部署方式 64
3.4.2 常用的云服务器 65
3.4.3 安装pip包管理工具 68
3.4.4 安装虚拟环境 69
3.4.5 安装Gunicorn 71
3.4.6 安装Nginx 74
3.4.7 安装Supervisor 78
温 故 知 新 82
第4章 快速开发框架Flask 83
4.1 下载并安装Flask框架 84
4.2 Flask基础 85
4.2.1 个Flask应用 85
实例4.1 输出“Hello World!” 85
4.2.2 开启调试模式 86
4.3 路由 86
4.3.1 变量规则 87
实例4.2 根据不同的用户名参数输出相应的用户信息 87
4.3.2 构造URL 88
实例4.3 模拟登录成功后页面跳转至首页的效果 89
4.3.3 HTTP方法 90
4.3.4 静态文件 90
4.4 模板 91
4.4.1 渲染模板 91
实例4.4 渲染首页模板 91
4.4.2 模板过滤器 93
实例4.5 使用add_template_filter()方法统计文章的长度 95
实例4.6 使用@app.template_filter()装饰器统计文章的长度 96
4.4.3 控制结构 97
4.4.4 模板上下文 97
实例4.7 使用内置全局变量session判断用户是否登录 98
4.4.5 模板继承 99
实例4.8 使用子模板继承父模板 99
4.4.6 消息闪现 102
实例4.9 使用flash闪现用户登录成功或失败的消息 102
4.4.7 自定义错误页面 104
实例4.10 注册错误处理函数自定义错误页面 105
4.5 Web表单 106
4.5.1 CSRF保护和验证 107
4.5.2 表单类 108
4.5.3 把表单类渲染成HTML 109
实例4.11 验证用户登录信息 110
4.6 蓝图 112
4.6.1 为什么使用蓝图? 113
4.6.2 蓝图的基本使用 113
实例4.12 使用蓝图创建前台和后台应用 113
4.7 Flask常用扩展 115
4.7.1 Flask-SQLAlchemy扩展 115
4.7.2 Flask-Migrate扩展 121
4.7.3 Flask-Script扩展 124
温 故 知 新 130
第5章 企业级开发框架Django 131
5.1 Django 3.0框架简介 132
5.1.1 Django 3.0版本的新特性 132
5.1.2 安装Django Web框架 132
5.2 创建项目 133
实例5.1 使用命令行创建项目 133
5.3 创建应用 135
5.4 数据模型格式 136
5.4.1 在应用中添加数据模型 136
5.4.2 执行数据库迁移 138
5.4.3 了解Django数据API 140
5.5 管理后台 142
5.5.1 创建管理后台 143
5.5.2 ModelAdmin.fields 146
5.5.3 ModelAdmin.fieldset 148
5.5.4 ModelAdmin.list_display 149
5.5.5 ModelAdmin.list_display_links 153
5.5.6 ModelAdmin.list_editable 153
5.5.7 ModelAdmin.list_filter 154
5.6 路由 157
5.6.1 Django支持的路由形式 157
实例5.2 定义路由并创建路由函数 158
5.6.2 使用include包含路由 160
5.7 视图 161
5.7.1 FBV——基于函数的视图 161
实例5.3 创建获取当前日期的视图函数 161
5.7.2 CBV——基于类的视图 162
5.8 Django模板 162
实例5.4 创建并渲染模板 162
5.9 表单 166
实例5.5 创建表单类并实现表单验证功能 166
5.10 Session会话 169
5.10.1 启用会话 169
5.10.2 配置会话引擎 170
5.10.3 会话对象的常用方法 170
5.10.4 使用会话实现登录功能 172
实例5.6 使用会话实现登录功能 172
5.10.5 退出登录 176
5.10.6 登录验证 176
实例5.7 验证用户是否登录 176
温 故 知 新 177
第6章 高并发框架Tornado 179
6.1 Tornado简介 180
6.1.1 Tornado简介 180
6.1.2 安装Tornado 180
6.2 个Tornado程序 181
实例6.1 在网页中输出“Hello World!” 181
6.3 路由 182
6.4 HTTP方法 182
实例6.2 创建一个接收多种请求的LoginHandler类 183
6.5 模板 184
6.5.1 渲染模板 184
实例6.3 创建登录页面模板 184
6.5.2 模板语法 186
6.5.3 提供静态文件 187
实例6.4 使用Bootstrap美化登录页面 187
6.6 异步与协程 188
6.6.1 基本概念 188
6.6.2 asyncio模块 191
6.6.3 Tornado框架的gen模块 192
6.7 操作MySQL数据库 193
6.7.1 安装Tornado-MySQL 193
6.7.2 Tornado-MySQL库的基本使用 194
实例6.5 使用Tornado-MySQL库连接MySQL数据库 194
6.8 操作Redis数据库 195
6.8.1 安装Redis数据库 195
6.8.2 安装Tornado-Redis 197
6.8.3 Tornado-Redis的基本使用 197
温 故 知 新 199
第7章 快速构建REST API框架FastAPI 201
7.1 FastAPI简介 202
7.1.1 FastAPI简介 202
7.1.2 安装FastAPI 202
7.2 个FastAPI程序 202
实例7.1 输出“Hello World!” 202
7.3 API文档 204
7.3.1 交互式API文档 204
7.3.2 备用API文档 205
7.4 Path路径参数 206
7.4.1 声明路径参数 206
7.4.2 路径参数的类型与转换 206
7.4.3 数据类型校验 207
7.4.4 指定路径顺序 208
实例7.2 指定路径顺序 208
7.5 Query查询参数 209
7.5.1 Query参数 209
7.5.2 设置Query参数 209
7.5.3 Query参数类型转换 210
7.5.4 同时使用Path参数和Query参数 211
实例7.3 同时使用Path参数和Query参数 211
7.5.5 必需的查询参数 212
7.6 Request Body请求体 214
7.6.1 什么是请求体 214
7.6.2 创建数据模型 214
7.6.3 使用Request Body的好处 215
7.6.4 同时定义Path参数、Query参数和请求Request Body参数 216
实例7.4 同时定义Path参数、Query参数和请求体参数 216
7.7 Header请求头参数 218
7.8 Form表单数据 218
7.9 操作MySQL数据库 219
实例7.5 操作MySQL数据库 219
温 故 知 新 226
第8章 开发基于Flask框架的好记星博客系统 227
8.1 需求分析 228
8.2 系统设计 228
8.2.1 系统功能结构 228
8.2.2 系统业务流程 228
8.2.3 系统预览 229
8.3 系统开发 230
8.3.1 开发工具准备 230
8.3.2 文件夹组织结构 230
8.4 数据库设计 231
8.4.1 数据库概要说明 231
8.4.2 创建数据表 231
8.4.3 数据库操作类 232
8.5 用户模块设计 235
8.5.1 用户登录功能实现 235
8.5.2 退出登录功能实现 239
8.5.3 用户权限管理功能实现 239
8.6 博客模块设计 241
8.6.1 博客列表功能实现 241
8.6.2 添加博客功能实现 242
8.6.3 编辑博客功能实现 244
8.6.4 删除博客功能实现 246
温 故 知 新 246
第9章 开发基于Django框架的智慧星学生管理系统 247
9.1 需求分析 248
9.2 系统功能设计 248
9.2.1 系统功能结构 248
9.2.2 系统业务流程 248
9.2.3 系统预览 249
9.3 系统开发 251
9.3.1 系统开发环境 251
9.3.2 文件夹组织结构 251
9.4 数据库设计 252
9.4.1 数据库概要说明 252
9.4.2 数据表模型 253
9.5 公共模块设计 255
9.5.1 修改目录结构 255
9.5.2 配置settings 255
9.6 学生模块设计 257
9.6.1 学生登录功能实现 257
9.6.2 退出登录功能实现 261
9.6.3 查询成绩功能实现 262
9.7 后台管理员模块设计 264
9.7.1 管理老师信息 265
9.7.2 设置权限组 268
9.8 老师模块设计 269
9.8.1 管理学生信息 269
9.8.2 管理成绩信息 272
9.8.3 批量上传学生信息和成绩信息 274
温 故 知 新 279
第10章 开发基于Tornad框架的BBS社区系统 281
10.1 需求分析 282
10.2 系统功能设计 282
10.2.1 系统功能结构 282
10.2.2 系统业务流程 283
10.2.3 系统预览 283
10.3 系统开发 285
10.3.1 系统开发环境 285
10.3.2 文件夹组织结构 286
10.4 数据库设计 286
10.4.1 数据库概要说明 286
10.4.2 数据表关系 287
10.5 用户系统设计 287
10.5.1 用户注册功能 287
10.5.2 登录功能实现 292
10.5.3 用户注销功能实现 293
10.6 问题模块设计 294
10.6.1 问题列表实现 294
10.6.2 问题详情的功能实现 296
10.6.3 创建问题的实现 297
10.7 答案长轮询设计 300
温 故 知 新 302
第11章 开发基于FastAPI框架的看图猜成语微信小程序 303
11.1 需求分析 304
11.2 系统功能设计 304
11.2.1 系统功能结构 304
11.2.2 系统业务流程 304
11.2.3 系统预览 305
11.3 系统开发 305
11.3.1 系统开发环境 305
11.3.2 文件夹组织结构 306
11.4 数据库设计 306
11.4.1 数据库概要说明 306
11.4.2 数据表模型 307
11.4.3 模型对象方法 308
11.5 小程序开发 309
11.5.1 注册小程序 309
11.5.2 小程序信息完善及开发前准备 312
11.5.3 下载微信开发工具 313
11.6 首页登录授权模块设计 315
11.6.1 首页登录授权模块概述 315
11.6.2 首页页面设计 316
11.6.3 登录授权接口实现 322
11.7 答题模块设计 325
11.7.1 答题模块概述 325
11.7.2 答题页面设计 326
11.7.3 答题接口实现 332
11.8 通关模块设计 336
11.8.1 通关模块概述 336
11.8.2 通关页面设计 337
11.9 排行榜模块设计 338
11.9.1 排行榜模块概述 338
11.9.2 排行榜页面设计 339
11.9.3 排行榜接口实现 341
温 故 知 新 342
附录 PyCharm常用快捷键 343