本書從實(shí)際項(xiàng)目出發(fā),以Python為主要編程語言從基礎(chǔ)知識(shí)到高級編程、從前端開發(fā)到后端開發(fā),全面系統(tǒng)的闡述在Python實(shí)際項(xiàng)目開發(fā)過程中所需用的到各種技術(shù)及相關(guān)知識(shí)。 全書共分為3篇:第1篇為入門篇(第1和2章),入門篇詳細(xì)講解Python編程語言的基礎(chǔ)知識(shí),包括Python編輯器PyCharm的使用、Python的變量及標(biāo)識(shí)符、數(shù)據(jù)類型、運(yùn)算符、行和縮進(jìn)、條件語句、循環(huán)語句、函數(shù)、面向?qū)ο缶幊、錯(cuò)誤和異常、模塊及常用模塊的使用、包的使用、迭代器、生成器、裝飾器、多進(jìn)程與多線程。 第2篇為應(yīng)用篇(第3章~第6章),應(yīng)用篇詳細(xì)講解Python與第三方軟件的結(jié)合及實(shí)際使用,包括Python對MySQL的操作、對MongoDB的操作、對Redis的操作、使用Python爬取網(wǎng)頁內(nèi)容、爬取App內(nèi)容、常見數(shù)據(jù)分析與可視化包NumPy、Pands、matplotlib的使用、Python與前端交互等。 第3篇為實(shí)戰(zhàn)篇(第7章~第8章),實(shí)戰(zhàn)篇詳細(xì)講解Flask框架的使用,并通過開發(fā)一個(gè)短視頻數(shù)據(jù)平臺(tái)將前文所學(xué)的全部技術(shù)內(nèi)容應(yīng)用在實(shí)際項(xiàng)目當(dāng)中,使學(xué)以致用。除了開發(fā)項(xiàng)目之外,對項(xiàng)目的上線流程也做了詳細(xì)的講解,包括服務(wù)器的部署、域名設(shè)置、服務(wù)器的備案等。使所學(xué)的知識(shí)真正能用在實(shí)際項(xiàng)目當(dāng)中。 本書可作為Python初學(xué)者入門書籍,也可作為從事Web開發(fā)或者數(shù)據(jù)分析技術(shù)人員及培訓(xùn)機(jī)構(gòu)的參考書籍。
本書從Python基礎(chǔ)知識(shí)開始講解,一直到開發(fā)一個(gè)完整的實(shí)戰(zhàn)項(xiàng)目,直到將開發(fā)完畢的項(xiàng)目一步步發(fā)布到線上。其中涉及Python的編程基礎(chǔ)、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)可視化、數(shù)據(jù)爬取、Web前端技能、Web實(shí)戰(zhàn)項(xiàng)目的開發(fā)等,對Python應(yīng)用所涉及的各個(gè)知識(shí)點(diǎn)都進(jìn)行了詳細(xì)的介紹。除了示例代碼外,本書在每個(gè)重點(diǎn)知識(shí)點(diǎn)處都會(huì)給出完整的可運(yùn)行的代碼,并且每行新知識(shí)點(diǎn)的代碼處都會(huì)有詳細(xì)的注釋,代碼前后都會(huì)有編寫代碼的思路及技巧,幫助讀者快速全面地掌握Python的開發(fā)技能,輕松快速地理解代碼的運(yùn)行機(jī)制及代碼編寫的思想。
隨著人工智能與大數(shù)據(jù)技術(shù)的興起,Python作為其主要編程語言近年來受到了極大的關(guān)注,甚至部分地區(qū)中小學(xué)開設(shè)了Python的編程課程。Python作為一門優(yōu)秀的編程語言,其語法簡單、功能強(qiáng)大、易學(xué)易用等特點(diǎn)深受編程人員的喜愛。
Python不僅可以用于人工智能與大數(shù)據(jù),其在桌面程序開發(fā)、Web編程、數(shù)據(jù)爬取、App接口等領(lǐng)域都有廣泛的應(yīng)用,并且Python作為一個(gè)跨平臺(tái)的編程語言不僅可以運(yùn)行在常見的Windows操作系統(tǒng)中,還可以運(yùn)行在Linux、macOS等其他操作系統(tǒng)中,能夠做到一次開發(fā)到處運(yùn)行。
本書從Python基礎(chǔ)知識(shí)開始講解,然后講解如何開發(fā)一個(gè)完整的實(shí)戰(zhàn)項(xiàng)目,后講解如何將開發(fā)完畢的項(xiàng)目一步步發(fā)布到線上。其中涉及Python的編程基礎(chǔ)、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)可視化、數(shù)據(jù)爬取、Web前端技能、Web實(shí)戰(zhàn)項(xiàng)目的開發(fā)等,對Python應(yīng)用所涉及的各個(gè)知識(shí)點(diǎn)都進(jìn)行了詳細(xì)介紹,幫助讀者快速全面地掌握Python的開發(fā)技能。為了寫作本書,筆者查閱了大量的資料,使知識(shí)體系更加完整,知識(shí)面得以更大的擴(kuò)展,獲益良多。
本書主要內(nèi)容
第1章介紹Python編程語言的相關(guān)信息及Python編程語言常用編輯器PyCharm的下載及安裝。
第2章介紹Python編程語言的語言基礎(chǔ),包括Python中變量及標(biāo)識(shí)符的使用、數(shù)據(jù)類型和運(yùn)算符的使用、Python的語法格式、條件和條件語句、函數(shù)、面向?qū)ο缶幊獭㈠e(cuò)誤和異常、模塊和包的使用、迭代器、生成器、裝飾器、多線程與多進(jìn)程的使用等。
第3章介紹常見的數(shù)據(jù)庫程序的使用方法及如何通過Python操作這些數(shù)據(jù)庫,包括MySQL及SQL、MongoDB、Redis。
第4章介紹通過URLlib庫與requests庫如何爬取網(wǎng)頁數(shù)據(jù)和App數(shù)據(jù),以及爬取App數(shù)據(jù)的方式和方法。
第5章介紹數(shù)據(jù)分析及可視化中常用的庫,包括NumPy庫、Pandas庫及Matplotlib庫等。
第6章介紹Web前端相關(guān)知識(shí),包括HTML、CSS及JavaScript等,并且講解如何使用Python與前端頁面進(jìn)行交互,包括數(shù)據(jù)之間的傳輸格式JSON及編寫API時(shí)如何測試API的有效性。
第7章主要介紹Python流行的Web開發(fā)框架Flask的相關(guān)知識(shí),以及使用Flask框架開發(fā)一個(gè)完整的短視頻數(shù)據(jù)平臺(tái)。通過對該平臺(tái)的開發(fā),可以將前面所學(xué)的相關(guān)知識(shí)和技能結(jié)合在一起,以實(shí)際落地的方式讓讀者切實(shí)地感受到所學(xué)的技能和知識(shí)點(diǎn)應(yīng)用在何處。
第8章介紹如何將所開發(fā)的短視頻平臺(tái)一步步部署到正式的CentOS服務(wù)器上,并綁定域名及備案,使所開發(fā)的項(xiàng)目正式上線并對外服務(wù)。
閱讀建議
本書是一本基礎(chǔ)入門加項(xiàng)目實(shí)戰(zhàn)的書籍,既有豐富的示例,也包括詳細(xì)的操作步驟。本書通過從基礎(chǔ)的開發(fā)工具的安裝使用開始,一直到后完整的商業(yè)化項(xiàng)目的開發(fā),一步一步由淺入深地幫助讀者輕松地掌握相關(guān)的知識(shí)點(diǎn)。除了示例代碼外,本書在每個(gè)重點(diǎn)知識(shí)點(diǎn)處都會(huì)給出完整的可運(yùn)行的代碼,并且每行新知識(shí)點(diǎn)的代碼處都會(huì)有詳細(xì)的注釋,代碼前后都會(huì)有編寫代碼的思路及技巧,幫助讀者輕松快速地理解代碼的運(yùn)行機(jī)制及代碼編寫的思想。
讀者在閱讀本書時(shí),建議將入門篇通讀一遍,安裝好相應(yīng)的開發(fā)工具及搭建好對應(yīng)的開發(fā)環(huán)境,并跟著本書的案例將每個(gè)知識(shí)點(diǎn)的代碼在計(jì)算機(jī)上至少正確地運(yùn)行一遍。在每節(jié)知識(shí)點(diǎn)學(xué)習(xí)完畢后,脫離本書后將當(dāng)前章節(jié)知識(shí)點(diǎn)的代碼在計(jì)算機(jī)上至少正確地運(yùn)行一遍,以便熟練地掌握Python的編程知識(shí)。
在閱讀應(yīng)用篇時(shí),建議將每個(gè)應(yīng)用都正確地安裝到計(jì)算機(jī)上,并且能夠做到將每個(gè)應(yīng)用通過本書所介紹的內(nèi)容成功地在計(jì)算機(jī)上運(yùn)行,該篇內(nèi)數(shù)據(jù)庫的知識(shí)及前端的知識(shí)相對更加重要,需要將該篇知識(shí)熟練掌握,以便能夠在實(shí)戰(zhàn)篇中理解并開發(fā)出完整的項(xiàng)目。
在閱讀實(shí)戰(zhàn)篇時(shí),需要仔細(xì)地閱讀項(xiàng)目的代碼,了解代碼的開發(fā)思想,掌握開發(fā)的基本要領(lǐng),建議達(dá)到脫離本書后,能夠從頭至尾將項(xiàng)目代碼完整地編寫出來,或者能夠做到舉一反三,針對其他平臺(tái)開發(fā)出相應(yīng)的數(shù)據(jù)分析平臺(tái)。
致謝
首先感謝清華大學(xué)出版社趙佳霓編輯的耐心指點(diǎn),對她的專業(yè)深表佩服,在她的推動(dòng)下完成了本書的出版。
還要感謝筆者的家人,感謝筆者的父母、岳父母及所有對筆者關(guān)心和提供幫助的親朋好友,大家的鼓勵(lì)及幫助給了筆者寫作的力量。后也祝愿筆者的孩子(仔仔)健康快樂地成長。
由于時(shí)間倉促,書中難免存在不妥之處,敬請讀者見諒,并提出寶貴意見。
錢超
2022年3月
本書源代碼
入門篇
第1章初識(shí)Python(23min)
1.1Python簡介
1.1.1相關(guān)平臺(tái)
1.1.2TIOBE排行
1.2Python運(yùn)行環(huán)境的下載及安裝
1.2.1Python的版本選擇
1.2.2Python的安裝及注意事項(xiàng)
1.3PyCharm的下載及安裝
1.3.1PyCharm的簡單使用
1.3.2配置PyCharm
第2章Python的語言基礎(chǔ)(241min)
2.1變量及標(biāo)識(shí)符
2.2數(shù)據(jù)類型
2.2.1Number(數(shù)字)
2.2.2String(字符串)
2.2.3List(列表)
2.2.4Tuple(元組)
2.2.5Dictionary(字典)
2.2.6Set(集合)
2.2.7Bool(布爾)
2.3運(yùn)算符
2.4Python中的縮進(jìn)
2.5條件和條件語句
2.6循環(huán)語句
2.7函數(shù)
2.7.1函數(shù)的定義
2.7.2函數(shù)的調(diào)用
2.7.3函數(shù)中的參數(shù)
2.7.4匿名函數(shù)
2.7.5返回值
2.7.6內(nèi)置函數(shù)
2.8面向?qū)ο?/p>
2.9錯(cuò)誤和異常
2.10模塊
2.10.1導(dǎo)入模塊
2.10.2入口文件
2.10.3包
2.11常用模塊
2.11.1os模塊
2.11.2sys模塊
2.11.3time模塊
2.11.4datetime模塊
2.11.5random模塊
2.12使用第三方包
2.13迭代器、生成器、裝飾器
2.13.1迭代器
2.13.2生成器
2.13.3裝飾器
2.14多進(jìn)程與多線程
2.14.1線程與線程模塊
2.14.2使用threading創(chuàng)建線程
2.14.3線程同步
2.14.4守護(hù)線程
2.14.5進(jìn)程與進(jìn)程模塊
2.14.6使用multiprocessing創(chuàng)建進(jìn)程
2.14.7進(jìn)程同步
2.14.8進(jìn)程池
2.14.9進(jìn)程間通信
2.14.10分布式進(jìn)程
應(yīng)用篇
第3章Python操作數(shù)據(jù)庫(80min)
3.1MySQL簡介及安裝
3.1.1MySQL簡介
3.1.2MySQL特性
3.1.3MySQL安裝
3.1.4MySQL可視化工具
3.1.5MySQL基礎(chǔ)
3.2SQL
3.3使用Python操作MySQL
3.3.1MySQL操作模塊
3.3.2使用Python操作MySQL
3.4MongoDB簡介及安裝
3.4.1MongoDB簡介
3.4.2MongoDB特性
3.4.3MongoDB安裝
3.4.4MongoDB可視化工具
3.4.5MongoDB基礎(chǔ)
3.5MongoDB操作語法
3.6使用Python操作MongoDB
3.6.1MongoDB操作模塊
3.6.2使用Python操作MongoDB
3.7Redis簡介及安裝
3.7.1Redis簡介
3.7.2Redis安裝
3.7.3Redis可視化工具
3.7.4Redis基礎(chǔ)
3.8Redis操作語法
3.9使用Python操作Redis
3.9.1Redis操作模塊
3.9.2使用Python操作Redis
第4章Python爬蟲入門(78min)
4.1爬取網(wǎng)頁數(shù)據(jù)
4.1.1網(wǎng)頁的構(gòu)成
4.1.2內(nèi)容截取
4.1.3網(wǎng)頁請求
4.1.4爬蟲約束
4.1.5urllib庫
4.1.6requests庫
4.1.7數(shù)據(jù)解析beautiful Soup4
4.2爬取App數(shù)據(jù)
4.2.1分析App數(shù)據(jù)
4.2.2請求App數(shù)據(jù)
第5章Python數(shù)據(jù)分析與可視化(22min)
5.1NumPy
5.1.1NumPy簡介及安裝
5.1.2NumPy數(shù)組屬性
5.1.3NumPy創(chuàng)建數(shù)組
5.1.4NumPy切片索引及迭代
5.1.5操作數(shù)組
5.1.6NumPyIO
5.2Pandas
5.2.1Pandas簡介及安裝
5.2.2Series
5.2.3DataFrame
5.2.4常用操作
5.2.5讀寫Excel
5.3Matplotlib
5.3.1折線圖
5.3.2散點(diǎn)圖
5.3.3柱狀圖
5.3.4餅圖
5.3.5泡泡圖
5.3.6等高線
第6章Python與前端交互(25min)
6.1前端開發(fā)工具
6.2HTML基礎(chǔ)
6.2.1HTML根元素
6.2.2HTML文檔元素
6.2.3HTML分區(qū)根元素
6.2.4HTML內(nèi)容分區(qū)元素
6.2.5HTML文本元素
6.2.6HTML內(nèi)聯(lián)文本語義
6.2.7HTML圖片及多媒體元素
6.2.8HTML內(nèi)嵌內(nèi)容元素
6.2.9HTML腳本元素
6.2.10HTML表格元素
6.2.11HTML表單元素
6.3CSS基礎(chǔ)
6.3.1CSS寫法
6.3.2基本選擇器
6.3.3擴(kuò)展選擇器
6.3.4常用樣式屬性
6.3.5盒子模型
6.4JavaScript基礎(chǔ)
6.4.1第1個(gè)JavaScript程序
6.4.2JavaScript基礎(chǔ)語法
6.4.3JavaScript操作DOM
6.4.4AJAX
6.4.5常用事件
6.4.6jQuery
6.5JSON
6.6接口編寫及測試
6.6.1創(chuàng)建服務(wù)器
6.6.2編寫登錄API
6.6.3使用POSTMAN測試接口
實(shí)戰(zhàn)篇
第7章Python Web開發(fā)實(shí)戰(zhàn)(28min)
7.1Flask基礎(chǔ)知識(shí)
7.1.1Flask安裝
7.1.2路由
7.1.3請求方式
7.1.4JSON處理
7.1.5文件上傳
7.1.6模板
7.1.7Cookie
7.1.8Session
7.2ECharts圖表
7.2.1使用ECharts
7.2.2折線圖
7.2.3散點(diǎn)圖
7.2.4餅圖
7.2.5K線圖
7.2.6異步獲取與實(shí)時(shí)更新數(shù)據(jù)
7.3使用Flask開發(fā)短視頻數(shù)據(jù)平臺(tái)
7.3.1系統(tǒng)規(guī)劃
7.3.2數(shù)據(jù)庫設(shè)計(jì)
7.3.3模板制作
7.3.4程序開發(fā)
第8章Python項(xiàng)目的部署(17min)
8.1CentOS基礎(chǔ)
8.1.1CentOS文件結(jié)構(gòu)
8.1.2CentOS常用命令
8.1.3Shell腳本基礎(chǔ)
8.1.4CentOS防火墻設(shè)置
8.1.5SSH工具
8.2CentOS的應(yīng)用部署
8.2.1安裝Python
8.2.2安裝MySQL
8.2.3服務(wù)器監(jiān)控
8.3Flask高并發(fā)部署
8.3.1部署架構(gòu)
8.3.2安裝虛擬環(huán)境
8.3.3安裝所需模塊
8.3.4安裝Nginx
8.4系統(tǒng)上線流程
8.4.1域名與云服務(wù)器
8.4.2服務(wù)器備案