面向職業(yè)院校和應(yīng)用型、職教本科院校開展1+X證書制度試點(diǎn)工作是落實(shí)《國家職業(yè)教育改革實(shí)施方案》的重要內(nèi)容之一。為了便于X證書標(biāo)準(zhǔn)融入院校學(xué)歷教育,中慧云啟科技集團(tuán)有限公司組織編寫了《Python程序開發(fā)(中級)》。
本書以《Python程序開發(fā)職業(yè)技能等級標(biāo)準(zhǔn)》為編寫依據(jù),內(nèi)容包括數(shù)據(jù)庫存儲、Python Web開發(fā)、網(wǎng)絡(luò)爬蟲3個(gè)部分,涵蓋了關(guān)系型數(shù)據(jù)庫MySQL、非關(guān)系型數(shù)據(jù)庫、Django框架、模擬用戶操作、Scrapy爬蟲框架、分布式爬蟲、反爬蟲等內(nèi)容。本書以模塊化的結(jié)構(gòu)組織各章節(jié),以任務(wù)驅(qū)動的方式安排教材內(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è)生和社會在職人員的參考用書。
1.1+X證書制度試點(diǎn)培訓(xùn)用書;
目前軟件技術(shù)專業(yè)開始python程序設(shè)計(jì)基礎(chǔ)這一門課程,此外人工智能、大數(shù)據(jù)分析其他專業(yè)也都需要本門課程的基礎(chǔ)知識體系做支撐,且本書直接對應(yīng)證書初級的python程序設(shè)計(jì)專業(yè)知識考察點(diǎn)。
2.豐富的案例和技術(shù)支持;
教材配套豐富的實(shí)操案例,簡單易上手,切合企業(yè)開發(fā)實(shí)際技術(shù)要求。
3.附贈PPT、源代碼、習(xí)題與答案等資源
中慧云啟科技集團(tuán)有限公司是一家專業(yè)從事中高職業(yè)院校軟件實(shí)訓(xùn)教學(xué)綜合解決方案,集研發(fā)、生產(chǎn)、銷售、培訓(xùn)和技術(shù)服務(wù)于一體的國家高新技術(shù)企業(yè)公司。中慧舉辦Web前端開發(fā)技能競賽四屆,該賽項(xiàng)類別分為全國行業(yè)賽和省賽,提升教育行業(yè)教學(xué)改革和IT人才建設(shè)。同時(shí),中慧為世界技能大賽全國選拔賽網(wǎng)站設(shè)計(jì)與開發(fā)項(xiàng)目提供技術(shù)支持,提升中國在世界技能大賽Web Technologies項(xiàng)目的聲望和地位。書籍的作者由中慧科技的講師、高級工程師,山東科技職業(yè)學(xué)院教授Web前端開發(fā)的教師團(tuán)隊(duì)共同組成,從企業(yè)用人需求,課證賽融通、高職教學(xué)需求幾個(gè)方面出發(fā),共同編寫。
目 錄
第 一篇 數(shù)據(jù)庫存儲
第 1章 關(guān)系型數(shù)據(jù)庫 2
1.1 數(shù)據(jù)庫基本概念 2
1.1.1 數(shù)據(jù)庫簡介 2
1.1.2 關(guān)系型數(shù)據(jù)庫 3
1.2 MySQL數(shù)據(jù)庫簡介及安裝 3
1.2.1 MySQL數(shù)據(jù)庫簡介 3
1.2.2 MySQL數(shù)據(jù)庫安裝 3
1.2.3 數(shù)據(jù)庫可視化工具Navicat安裝 8
1.3 MySQL數(shù)據(jù)庫基礎(chǔ) 11
1.3.1 數(shù)據(jù)類型 11
1.3.2 約束 12
1.4 MySQL數(shù)據(jù)庫管理 13
1.4.1 服務(wù)啟動與數(shù)據(jù)庫連接 13
1.4.2 數(shù)據(jù)庫的基本操作 14
1.4.3 表的基本操作 15
1.5 MySQL數(shù)據(jù)庫操作 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 高級查詢 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ù)庫 35
2.1 非關(guān)系型數(shù)據(jù)庫 35
2.2 MongoDB數(shù)據(jù)庫 36
2.2.1 MongoDB數(shù)據(jù)庫簡介 36
2.2.2 MongoDB安裝 36
2.2.3 啟動MongoDB 39
2.2.4 Navicat可視化操作MongoDB 40
2.3 MongoDB數(shù)據(jù)庫操作 42
2.3.1 數(shù)據(jù)庫操作 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ù)庫 46
2.4.3 pymongo讀寫數(shù)據(jù)庫 47
2.5 項(xiàng)目實(shí)戰(zhàn)——基于pymongo實(shí)現(xiàn)學(xué)生信息管理 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數(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模擬用戶注冊、登錄 70
本章小結(jié) 72
習(xí)題 72
第二篇 Python Web開發(fā)
第3章 Django框架 76
3.1 Django基本知識 76
3.1.1 Django簡介 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 啟動項(xiàng)目 81
3.3 Django模型 82
3.3.1 Django ORM簡介 82
3.3.2 使用Django模型創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu) 83
3.3.3 使用Django模型完成數(shù)據(jù)庫操作 86
3.4 Django模板 91
3.4.1 模板應(yīng)用實(shí)例 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 響應(yīng)對象 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)——添加跨域請求的中間件 124
3.10 Django Cookie與Session 126
3.10.1 Cookie 127
3.10.2 Session 128
3.10.3 練習(xí)——用戶登錄將token信息存儲到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ù)庫并實(shí)現(xiàn)數(shù)據(jù)庫訪問 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)的成績信息管理功能 158
本章小結(jié) 163
習(xí)題 163
第三篇 網(wǎng)絡(luò)爬蟲
第4章 模擬用戶操作 166
4.1 爬蟲與Selenium 166
4.2 安裝Selenium 167
4.2.1 安裝Selenium庫 167
4.2.2 瀏覽器驅(qū)動的安裝與配置 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)頁 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ù)庫 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)用場景和原理 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 動態(tài)頁面的反爬蟲 248
7.3 常見的反爬蟲應(yīng)對方案 248
7.3.1 修改請求頭 248
7.3.2 修改爬蟲的間隔時(shí)間 249
7.3.3 使用代理 249
本章小結(jié) 250
習(xí)題 250
參考文獻(xiàn) 252