面向職業(yè)院校和應(yīng)用型、職教本科院校開展1+X證書制度試點(diǎn)工作是落實(shí)《國(guó)家職業(yè)教育改革實(shí)施方案》的重要內(nèi)容之一。為了便于X證書標(biāo)準(zhǔn)融入院校學(xué)歷教育,中慧云啟科技集團(tuán)有限公司組織編寫了《Python程序開發(fā)(中級(jí))》。
本書以《Python程序開發(fā)職業(yè)技能等級(jí)標(biāo)準(zhǔn)》為編寫依據(jù),內(nèi)容包括數(shù)據(jù)庫(kù)存儲(chǔ)、Python Web開發(fā)、網(wǎng)絡(luò)爬蟲3個(gè)部分,涵蓋了關(guān)系型數(shù)據(jù)庫(kù)MySQL、非關(guān)系型數(shù)據(jù)庫(kù)、Django框架、模擬用戶操作、Scrapy爬蟲框架、分布式爬蟲、反爬蟲等內(nèi)容。本書以模塊化的結(jié)構(gòu)組織各章節(jié),以任務(wù)驅(qū)動(dòng)的方式安排教材內(nèi)容,以培養(yǎng)院校學(xué)生能力為目的,充分體現(xiàn)了“做中學(xué),學(xué)中做”的思想。
本書可用于1+X證書制度試點(diǎn)工作中的Python程序開發(fā)職業(yè)技能的教學(xué)和培訓(xùn),也可以作為期望從事Python程序開發(fā)職業(yè)的應(yīng)屆畢業(yè)生和社會(huì)在職人員的參考用書。
1.1+X證書制度試點(diǎn)培訓(xùn)用書;
目前軟件技術(shù)專業(yè)開始python程序設(shè)計(jì)基礎(chǔ)這一門課程,此外人工智能、大數(shù)據(jù)分析其他專業(yè)也都需要本門課程的基礎(chǔ)知識(shí)體系做支撐,且本書直接對(duì)應(yīng)證書初級(jí)的python程序設(shè)計(jì)專業(yè)知識(shí)考察點(diǎn)。
2.豐富的案例和技術(shù)支持;
教材配套豐富的實(shí)操案例,簡(jiǎn)單易上手,切合企業(yè)開發(fā)實(shí)際技術(shù)要求。
3.附贈(zèng)PPT、源代碼、習(xí)題與答案等資源
中慧云啟科技集團(tuán)有限公司是一家專業(yè)從事中高職業(yè)院校軟件實(shí)訓(xùn)教學(xué)綜合解決方案,集研發(fā)、生產(chǎn)、銷售、培訓(xùn)和技術(shù)服務(wù)于一體的國(guó)家高新技術(shù)企業(yè)公司。中慧舉辦Web前端開發(fā)技能競(jìng)賽四屆,該賽項(xiàng)類別分為全國(guó)行業(yè)賽和省賽,提升教育行業(yè)教學(xué)改革和IT人才建設(shè)。同時(shí),中慧為世界技能大賽全國(guó)選拔賽網(wǎng)站設(shè)計(jì)與開發(fā)項(xiàng)目提供技術(shù)支持,提升中國(guó)在世界技能大賽Web Technologies項(xiàng)目的聲望和地位。書籍的作者由中慧科技的講師、高級(jí)工程師,山東科技職業(yè)學(xué)院教授Web前端開發(fā)的教師團(tuán)隊(duì)共同組成,從企業(yè)用人需求,課證賽融通、高職教學(xué)需求幾個(gè)方面出發(fā),共同編寫。
目 錄
第 一篇 數(shù)據(jù)庫(kù)存儲(chǔ)
第 1章 關(guān)系型數(shù)據(jù)庫(kù) 2
1.1 數(shù)據(jù)庫(kù)基本概念 2
1.1.1 數(shù)據(jù)庫(kù)簡(jiǎn)介 2
1.1.2 關(guān)系型數(shù)據(jù)庫(kù) 3
1.2 MySQL數(shù)據(jù)庫(kù)簡(jiǎn)介及安裝 3
1.2.1 MySQL數(shù)據(jù)庫(kù)簡(jiǎn)介 3
1.2.2 MySQL數(shù)據(jù)庫(kù)安裝 3
1.2.3 數(shù)據(jù)庫(kù)可視化工具Navicat安裝 8
1.3 MySQL數(shù)據(jù)庫(kù)基礎(chǔ) 11
1.3.1 數(shù)據(jù)類型 11
1.3.2 約束 12
1.4 MySQL數(shù)據(jù)庫(kù)管理 13
1.4.1 服務(wù)啟動(dòng)與數(shù)據(jù)庫(kù)連接 13
1.4.2 數(shù)據(jù)庫(kù)的基本操作 14
1.4.3 表的基本操作 15
1.5 MySQL數(shù)據(jù)庫(kù)操作 17
1.5.1 插入數(shù)據(jù) 17
1.5.2 查詢數(shù)據(jù) 18
1.5.3 修改數(shù)據(jù) 18
1.5.4 刪除數(shù)據(jù) 19
1.5.5 高級(jí)查詢 19
1.6 Python與MySQL的交互 21
1.6.1 安裝Python環(huán)境下的MySQL操作模塊 21
1.6.2 MySQLdb操作MySQL 22
1.6.3 PyMySQL操作MySQL 26
1.7 項(xiàng)目實(shí)戰(zhàn)——基于MySQLdb的學(xué)生信息管理 28
本章小結(jié) 32
習(xí)題 33
第 2章 非關(guān)系型數(shù)據(jù)庫(kù) 35
2.1 非關(guān)系型數(shù)據(jù)庫(kù) 35
2.2 MongoDB數(shù)據(jù)庫(kù) 36
2.2.1 MongoDB數(shù)據(jù)庫(kù)簡(jiǎn)介 36
2.2.2 MongoDB安裝 36
2.2.3 啟動(dòng)MongoDB 39
2.2.4 Navicat可視化操作MongoDB 40
2.3 MongoDB數(shù)據(jù)庫(kù)操作 42
2.3.1 數(shù)據(jù)庫(kù)操作 42
2.3.2 集合操作 43
2.3.3 文檔操作 44
2.4 MongoDB與Python的交互 46
2.4.1 pymongo模塊安裝 46
2.4.2 pymongo連接數(shù)據(jù)庫(kù) 46
2.4.3 pymongo讀寫數(shù)據(jù)庫(kù) 47
2.5 項(xiàng)目實(shí)戰(zhàn)——基于pymongo實(shí)現(xiàn)學(xué)生信息管理 50
2.6 Redis 53
2.6.1 Redis簡(jiǎn)介 53
2.6.2 Redis安裝 53
2.6.3 Redis管理 56
2.7 Redis基本命令 57
2.8 Redis數(shù)據(jù)結(jié)構(gòu) 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 項(xiàng)目實(shí)戰(zhàn)——Python redis模擬用戶注冊(cè)、登錄 70
本章小結(jié) 72
習(xí)題 72
第二篇 Python Web開發(fā)
第3章 Django框架 76
3.1 Django基本知識(shí) 76
3.1.1 Django簡(jiǎn)介 76
3.1.2 Django的MTV模型 77
3.2 Django框架準(zhǔn)備 78
3.2.1 Django安裝 78
3.2.2 創(chuàng)建Django項(xiàng)目 80
3.2.3 啟動(dòng)項(xiàng)目 81
3.3 Django模型 82
3.3.1 Django ORM簡(jiǎn)介 82
3.3.2 使用Django模型創(chuàng)建數(shù)據(jù)庫(kù)表結(jié)構(gòu) 83
3.3.3 使用Django模型完成數(shù)據(jù)庫(kù)操作 86
3.4 Django模板 91
3.4.1 模板應(yīng)用實(shí)例 91
3.4.2 Django模板的基本語(yǔ)法 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 視圖簡(jiǎn)介 104
3.6.2 請(qǐng)求對(duì)象 105
3.6.3 響應(yīng)對(duì)象 109
3.7 Django路由 111
3.7.1 路徑 111
3.7.2 反向解析 113
3.7.3 路由命名空間 114
3.7.4 練習(xí)——?jiǎng)?chuàng)建路由實(shí)例 115
3.8 Django Admin管理工具 116
3.8.1 Admin管理工具 116
3.8.2 練習(xí)——使用管理工具添加數(shù)據(jù) 118
3.9 Django中間件 123
3.9.1 Django自帶中間件 123
3.9.2 項(xiàng)目實(shí)戰(zhàn)——添加跨域請(qǐng)求的中間件 124
3.10 Django Cookie與Session 126
3.10.1 Cookie 127
3.10.2 Session 128
3.10.3 練習(xí)——用戶登錄將token信息存儲(chǔ)到Session中 129
3.11 RESTful接口介紹 132
3.11.1 REST架構(gòu)的理解 132
3.11.2 RESTful接口設(shè)計(jì)規(guī)范 133
3.12 項(xiàng)目實(shí)戰(zhàn)——學(xué)生信息管理系統(tǒng) 134
3.12.1 項(xiàng)目目標(biāo) 134
3.12.2 流程分析 134
3.12.3 開發(fā)前的準(zhǔn)備 135
3.12.4 創(chuàng)建與初始化項(xiàng)目 135
3.12.5 配置數(shù)據(jù)庫(kù)并實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn) 136
3.12.6 開發(fā)接口前的預(yù)操作 139
3.12.7 開發(fā)系統(tǒng)的管理員登錄與登出接口 141
3.12.8 開發(fā)系統(tǒng)的學(xué)生信息管理功能 147
3.12.9 開發(fā)系統(tǒng)的課程信息管理功能 153
3.12.10 開發(fā)系統(tǒng)的成績(jī)信息管理功能 158
本章小結(jié) 163
習(xí)題 163
第三篇 網(wǎng)絡(luò)爬蟲
第4章 模擬用戶操作 166
4.1 爬蟲與Selenium 166
4.2 安裝Selenium 167
4.2.1 安裝Selenium庫(kù) 167
4.2.2 瀏覽器驅(qū)動(dòng)的安裝與配置 168
4.2.3 驗(yàn)證安裝 170
4.3 使用Selenium定位及操作元素 170
4.3.1 定位元素 170
4.3.2 信息獲取 174
4.3.3 鼠標(biāo)操作 176
4.3.4 鍵盤操作 180
4.3.5 提交表單 182
4.4 多線程爬蟲 184
4.4.1 進(jìn)程與線程 184
4.4.2 Python多線程模塊 184
4.4.3 多線程爬取網(wǎng)頁(yè) 186
4.5 項(xiàng)目實(shí)戰(zhàn)——用Selenium抓取電商網(wǎng)站數(shù)據(jù) 188
本章小結(jié) 191
習(xí)題 192
第5章 Scrapy爬蟲框架 194
5.1 Scrapy框架介紹 194
5.1.1 網(wǎng)絡(luò)爬蟲的原理 194
5.1.2 Scrapy框架的整體架構(gòu)和組成 195
5.1.3 安裝Scrapy框架 196
5.2 Scrapy框架的使用 198
5.2.1 創(chuàng)建Scrapy工程 198
5.2.2 使用Spider提取數(shù)據(jù) 201
5.2.3 使用Item封裝數(shù)據(jù) 205
5.2.4 使用Item Pipeline處理數(shù)據(jù) 206
5.3 爬蟲數(shù)據(jù)持久化 207
5.3.1 數(shù)據(jù)保存到文件 207
5.3.2 數(shù)據(jù)保存到數(shù)據(jù)庫(kù) 208
5.4 Scrapy的中間件 213
5.4.1 Spider Middlewares介紹 213
5.4.2 Downloader Middlewares介紹 215
5.5 項(xiàng)目實(shí)戰(zhàn)——用Scrapy抓取股票信息 219
本章小結(jié) 223
習(xí)題 224
第6章 分布式爬蟲 226
6.1 Scrapy-redis框架介紹 226
6.1.1 分布式爬蟲的應(yīng)用場(chǎng)景和原理 226
6.1.2 Scrapy-redis框架的整體架構(gòu)和組成 227
6.1.3 安裝Scrapy-redis框架 229
6.2 Scrapy-redis框架的使用 231
6.2.1 創(chuàng)建分布式爬蟲工程 231
6.2.2 繼承RedisSpider提取數(shù)據(jù) 232
6.2.3 分布式爬蟲的配置 234
6.3 項(xiàng)目實(shí)戰(zhàn)——分布式爬取當(dāng)當(dāng)網(wǎng)圖書數(shù)據(jù) 235
本章小結(jié) 241
習(xí)題 241
第7章 反爬蟲 243
7.1 爬蟲與反爬蟲 243
7.2 常見的反爬蟲方式 243
7.2.1 headers反爬蟲 243
7.2.2 基于用戶行為的反爬蟲 247
7.2.3 動(dòng)態(tài)頁(yè)面的反爬蟲 248
7.3 常見的反爬蟲應(yīng)對(duì)方案 248
7.3.1 修改請(qǐng)求頭 248
7.3.2 修改爬蟲的間隔時(shí)間 249
7.3.3 使用代理 249
本章小結(jié) 250
習(xí)題 250
參考文獻(xiàn) 252