面向职业院校和应用型、职教本科院校开展1+X证书制度试点工作是落实《国家职业教育改革实施方案》的重要内容之一。为了便于X证书标准融入院校学历教育,中慧云启科技集团有限公司组织编写了《Python程序开发(中级)》。
本书以《Python程序开发职业技能等级标准》为编写依据,内容包括数据库存储、Python Web开发、网络爬虫3个部分,涵盖了关系型数据库MySQL、非关系型数据库、Django框架、模拟用户操作、Scrapy爬虫框架、分布式爬虫、反爬虫等内容。本书以模块化的结构组织各章节,以任务驱动的方式安排教材内容,以培养院校学生能力为目的,充分体现了“做中学,学中做”的思想。
本书可用于1+X证书制度试点工作中的Python程序开发职业技能的教学和培训,也可以作为期望从事Python程序开发职业的应届毕业生和社会在职人员的参考用书。
1.1+X证书制度试点培训用书;
目前软件技术专业开始python程序设计基础这一门课程,此外人工智能、大数据分析其他专业也都需要本门课程的基础知识体系做支撑,且本书直接对应证书初级的python程序设计专业知识考察点。
2.丰富的案例和技术支持;
教材配套丰富的实操案例,简单易上手,切合企业开发实际技术要求。
3.附赠PPT、源代码、习题与答案等资源
中慧云启科技集团有限公司是一家专业从事中高职业院校软件实训教学综合解决方案,集研发、生产、销售、培训和技术服务于一体的国家高新技术企业公司。中慧举办Web前端开发技能竞赛四届,该赛项类别分为全国行业赛和省赛,提升教育行业教学改革和IT人才建设。同时,中慧为世界技能大赛全国选拔赛网站设计与开发项目提供技术支持,提升中国在世界技能大赛Web Technologies项目的声望和地位。书籍的作者由中慧科技的讲师、高级工程师,山东科技职业学院教授Web前端开发的教师团队共同组成,从企业用人需求,课证赛融通、高职教学需求几个方面出发,共同编写。
目 录
第 一篇 数据库存储
第 1章 关系型数据库 2
1.1 数据库基本概念 2
1.1.1 数据库简介 2
1.1.2 关系型数据库 3
1.2 MySQL数据库简介及安装 3
1.2.1 MySQL数据库简介 3
1.2.2 MySQL数据库安装 3
1.2.3 数据库可视化工具Navicat安装 8
1.3 MySQL数据库基础 11
1.3.1 数据类型 11
1.3.2 约束 12
1.4 MySQL数据库管理 13
1.4.1 服务启动与数据库连接 13
1.4.2 数据库的基本操作 14
1.4.3 表的基本操作 15
1.5 MySQL数据库操作 17
1.5.1 插入数据 17
1.5.2 查询数据 18
1.5.3 修改数据 18
1.5.4 删除数据 19
1.5.5 高级查询 19
1.6 Python与MySQL的交互 21
1.6.1 安装Python环境下的MySQL操作模块 21
1.6.2 MySQLdb操作MySQL 22
1.6.3 PyMySQL操作MySQL 26
1.7 项目实战——基于MySQLdb的学生信息管理 28
本章小结 32
习题 33
第 2章 非关系型数据库 35
2.1 非关系型数据库 35
2.2 MongoDB数据库 36
2.2.1 MongoDB数据库简介 36
2.2.2 MongoDB安装 36
2.2.3 启动MongoDB 39
2.2.4 Navicat可视化操作MongoDB 40
2.3 MongoDB数据库操作 42
2.3.1 数据库操作 42
2.3.2 集合操作 43
2.3.3 文档操作 44
2.4 MongoDB与Python的交互 46
2.4.1 pymongo模块安装 46
2.4.2 pymongo连接数据库 46
2.4.3 pymongo读写数据库 47
2.5 项目实战——基于pymongo实现学生信息管理 50
2.6 Redis 53
2.6.1 Redis简介 53
2.6.2 Redis安装 53
2.6.3 Redis管理 56
2.7 Redis基本命令 57
2.8 Redis数据结构 60
2.8.1 String 60
2.8.2 List 62
2.8.3 Hash 64
2.8.4 Set 65
2.8.5 Sorted Set 67
2.9 Redis与Python的交互 68
2.9.1 Python redis模块安装 68
2.9.2 连接Redis 69
2.9.3 Python操作Redis 69
2.10 项目实战——Python redis模拟用户注册、登录 70
本章小结 72
习题 72
第二篇 Python Web开发
第3章 Django框架 76
3.1 Django基本知识 76
3.1.1 Django简介 76
3.1.2 Django的MTV模型 77
3.2 Django框架准备 78
3.2.1 Django安装 78
3.2.2 创建Django项目 80
3.2.3 启动项目 81
3.3 Django模型 82
3.3.1 Django ORM简介 82
3.3.2 使用Django模型创建数据库表结构 83
3.3.3 使用Django模型完成数据库操作 86
3.4 Django模板 91
3.4.1 模板应用实例 91
3.4.2 Django模板的基本语法 92
3.4.3 模板继承 100
3.5 Django表单 102
3.5.1 表单处理——GET方法 102
3.5.2 表单处理——POST方法 103
3.6 Django视图 104
3.6.1 视图简介 104
3.6.2 请求对象 105
3.6.3 响应对象 109
3.7 Django路由 111
3.7.1 路径 111
3.7.2 反向解析 113
3.7.3 路由命名空间 114
3.7.4 练习——创建路由实例 115
3.8 Django Admin管理工具 116
3.8.1 Admin管理工具 116
3.8.2 练习——使用管理工具添加数据 118
3.9 Django中间件 123
3.9.1 Django自带中间件 123
3.9.2 项目实战——添加跨域请求的中间件 124
3.10 Django Cookie与Session 126
3.10.1 Cookie 127
3.10.2 Session 128
3.10.3 练习——用户登录将token信息存储到Session中 129
3.11 RESTful接口介绍 132
3.11.1 REST架构的理解 132
3.11.2 RESTful接口设计规范 133
3.12 项目实战——学生信息管理系统 134
3.12.1 项目目标 134
3.12.2 流程分析 134
3.12.3 开发前的准备 135
3.12.4 创建与初始化项目 135
3.12.5 配置数据库并实现数据库访问 136
3.12.6 开发接口前的预操作 139
3.12.7 开发系统的管理员登录与登出接口 141
3.12.8 开发系统的学生信息管理功能 147
3.12.9 开发系统的课程信息管理功能 153
3.12.10 开发系统的成绩信息管理功能 158
本章小结 163
习题 163
第三篇 网络爬虫
第4章 模拟用户操作 166
4.1 爬虫与Selenium 166
4.2 安装Selenium 167
4.2.1 安装Selenium库 167
4.2.2 浏览器驱动的安装与配置 168
4.2.3 验证安装 170
4.3 使用Selenium定位及操作元素 170
4.3.1 定位元素 170
4.3.2 信息获取 174
4.3.3 鼠标操作 176
4.3.4 键盘操作 180
4.3.5 提交表单 182
4.4 多线程爬虫 184
4.4.1 进程与线程 184
4.4.2 Python多线程模块 184
4.4.3 多线程爬取网页 186
4.5 项目实战——用Selenium抓取电商网站数据 188
本章小结 191
习题 192
第5章 Scrapy爬虫框架 194
5.1 Scrapy框架介绍 194
5.1.1 网络爬虫的原理 194
5.1.2 Scrapy框架的整体架构和组成 195
5.1.3 安装Scrapy框架 196
5.2 Scrapy框架的使用 198
5.2.1 创建Scrapy工程 198
5.2.2 使用Spider提取数据 201
5.2.3 使用Item封装数据 205
5.2.4 使用Item Pipeline处理数据 206
5.3 爬虫数据持久化 207
5.3.1 数据保存到文件 207
5.3.2 数据保存到数据库 208
5.4 Scrapy的中间件 213
5.4.1 Spider Middlewares介绍 213
5.4.2 Downloader Middlewares介绍 215
5.5 项目实战——用Scrapy抓取股票信息 219
本章小结 223
习题 224
第6章 分布式爬虫 226
6.1 Scrapy-redis框架介绍 226
6.1.1 分布式爬虫的应用场景和原理 226
6.1.2 Scrapy-redis框架的整体架构和组成 227
6.1.3 安装Scrapy-redis框架 229
6.2 Scrapy-redis框架的使用 231
6.2.1 创建分布式爬虫工程 231
6.2.2 继承RedisSpider提取数据 232
6.2.3 分布式爬虫的配置 234
6.3 项目实战——分布式爬取当当网图书数据 235
本章小结 241
习题 241
第7章 反爬虫 243
7.1 爬虫与反爬虫 243
7.2 常见的反爬虫方式 243
7.2.1 headers反爬虫 243
7.2.2 基于用户行为的反爬虫 247
7.2.3 动态页面的反爬虫 248
7.3 常见的反爬虫应对方案 248
7.3.1 修改请求头 248
7.3.2 修改爬虫的间隔时间 249
7.3.3 使用代理 249
本章小结 250
习题 250
参考文献 252