本書從實際項目出發(fā),以Python為主要編程語言從基礎知識到高級編程、從前端開發(fā)到后端開發(fā),全面系統(tǒng)的闡述在Python實際項目開發(fā)過程中所需用的到各種技術及相關知識。 全書共分為3篇:第1篇為入門篇(第1和2章),入門篇詳細講解Python編程語言的基礎知識,包括Python編輯器PyCharm的使用、Python的變量及標識符、數(shù)據(jù)類型、運算符、行和縮進、條件語句、循環(huán)語句、函數(shù)、面向對象編程、錯誤和異常、模塊及常用模塊的使用、包的使用、迭代器、生成器、裝飾器、多進程與多線程。 第2篇為應用篇(第3章~第6章),應用篇詳細講解Python與第三方軟件的結合及實際使用,包括Python對MySQL的操作、對MongoDB的操作、對Redis的操作、使用Python爬取網(wǎng)頁內容、爬取App內容、常見數(shù)據(jù)分析與可視化包NumPy、Pands、matplotlib的使用、Python與前端交互等。 第3篇為實戰(zhàn)篇(第7章~第8章),實戰(zhàn)篇詳細講解Flask框架的使用,并通過開發(fā)一個短視頻數(shù)據(jù)平臺將前文所學的全部技術內容應用在實際項目當中,使學以致用。除了開發(fā)項目之外,對項目的上線流程也做了詳細的講解,包括服務器的部署、域名設置、服務器的備案等。使所學的知識真正能用在實際項目當中。 本書可作為Python初學者入門書籍,也可作為從事Web開發(fā)或者數(shù)據(jù)分析技術人員及培訓機構的參考書籍。
本書從Python基礎知識開始講解,一直到開發(fā)一個完整的實戰(zhàn)項目,直到將開發(fā)完畢的項目一步步發(fā)布到線上。其中涉及Python的編程基礎、數(shù)據(jù)存儲、數(shù)據(jù)可視化、數(shù)據(jù)爬取、Web前端技能、Web實戰(zhàn)項目的開發(fā)等,對Python應用所涉及的各個知識點都進行了詳細的介紹。除了示例代碼外,本書在每個重點知識點處都會給出完整的可運行的代碼,并且每行新知識點的代碼處都會有詳細的注釋,代碼前后都會有編寫代碼的思路及技巧,幫助讀者快速全面地掌握Python的開發(fā)技能,輕松快速地理解代碼的運行機制及代碼編寫的思想。
隨著人工智能與大數(shù)據(jù)技術的興起,Python作為其主要編程語言近年來受到了極大的關注,甚至部分地區(qū)中小學開設了Python的編程課程。Python作為一門優(yōu)秀的編程語言,其語法簡單、功能強大、易學易用等特點深受編程人員的喜愛。
Python不僅可以用于人工智能與大數(shù)據(jù),其在桌面程序開發(fā)、Web編程、數(shù)據(jù)爬取、App接口等領域都有廣泛的應用,并且Python作為一個跨平臺的編程語言不僅可以運行在常見的Windows操作系統(tǒng)中,還可以運行在Linux、macOS等其他操作系統(tǒng)中,能夠做到一次開發(fā)到處運行。
本書從Python基礎知識開始講解,然后講解如何開發(fā)一個完整的實戰(zhàn)項目,后講解如何將開發(fā)完畢的項目一步步發(fā)布到線上。其中涉及Python的編程基礎、數(shù)據(jù)存儲、數(shù)據(jù)可視化、數(shù)據(jù)爬取、Web前端技能、Web實戰(zhàn)項目的開發(fā)等,對Python應用所涉及的各個知識點都進行了詳細介紹,幫助讀者快速全面地掌握Python的開發(fā)技能。為了寫作本書,筆者查閱了大量的資料,使知識體系更加完整,知識面得以更大的擴展,獲益良多。
本書主要內容
第1章介紹Python編程語言的相關信息及Python編程語言常用編輯器PyCharm的下載及安裝。
第2章介紹Python編程語言的語言基礎,包括Python中變量及標識符的使用、數(shù)據(jù)類型和運算符的使用、Python的語法格式、條件和條件語句、函數(shù)、面向對象編程、錯誤和異常、模塊和包的使用、迭代器、生成器、裝飾器、多線程與多進程的使用等。
第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前端相關知識,包括HTML、CSS及JavaScript等,并且講解如何使用Python與前端頁面進行交互,包括數(shù)據(jù)之間的傳輸格式JSON及編寫API時如何測試API的有效性。
第7章主要介紹Python流行的Web開發(fā)框架Flask的相關知識,以及使用Flask框架開發(fā)一個完整的短視頻數(shù)據(jù)平臺。通過對該平臺的開發(fā),可以將前面所學的相關知識和技能結合在一起,以實際落地的方式讓讀者切實地感受到所學的技能和知識點應用在何處。
第8章介紹如何將所開發(fā)的短視頻平臺一步步部署到正式的CentOS服務器上,并綁定域名及備案,使所開發(fā)的項目正式上線并對外服務。
閱讀建議
本書是一本基礎入門加項目實戰(zhàn)的書籍,既有豐富的示例,也包括詳細的操作步驟。本書通過從基礎的開發(fā)工具的安裝使用開始,一直到后完整的商業(yè)化項目的開發(fā),一步一步由淺入深地幫助讀者輕松地掌握相關的知識點。除了示例代碼外,本書在每個重點知識點處都會給出完整的可運行的代碼,并且每行新知識點的代碼處都會有詳細的注釋,代碼前后都會有編寫代碼的思路及技巧,幫助讀者輕松快速地理解代碼的運行機制及代碼編寫的思想。
讀者在閱讀本書時,建議將入門篇通讀一遍,安裝好相應的開發(fā)工具及搭建好對應的開發(fā)環(huán)境,并跟著本書的案例將每個知識點的代碼在計算機上至少正確地運行一遍。在每節(jié)知識點學習完畢后,脫離本書后將當前章節(jié)知識點的代碼在計算機上至少正確地運行一遍,以便熟練地掌握Python的編程知識。
在閱讀應用篇時,建議將每個應用都正確地安裝到計算機上,并且能夠做到將每個應用通過本書所介紹的內容成功地在計算機上運行,該篇內數(shù)據(jù)庫的知識及前端的知識相對更加重要,需要將該篇知識熟練掌握,以便能夠在實戰(zhàn)篇中理解并開發(fā)出完整的項目。
在閱讀實戰(zhàn)篇時,需要仔細地閱讀項目的代碼,了解代碼的開發(fā)思想,掌握開發(fā)的基本要領,建議達到脫離本書后,能夠從頭至尾將項目代碼完整地編寫出來,或者能夠做到舉一反三,針對其他平臺開發(fā)出相應的數(shù)據(jù)分析平臺。
致謝
首先感謝清華大學出版社趙佳霓編輯的耐心指點,對她的專業(yè)深表佩服,在她的推動下完成了本書的出版。
還要感謝筆者的家人,感謝筆者的父母、岳父母及所有對筆者關心和提供幫助的親朋好友,大家的鼓勵及幫助給了筆者寫作的力量。后也祝愿筆者的孩子(仔仔)健康快樂地成長。
由于時間倉促,書中難免存在不妥之處,敬請讀者見諒,并提出寶貴意見。
錢超
2022年3月
本書源代碼
入門篇
第1章初識Python(23min)
1.1Python簡介
1.1.1相關平臺
1.1.2TIOBE排行
1.2Python運行環(huán)境的下載及安裝
1.2.1Python的版本選擇
1.2.2Python的安裝及注意事項
1.3PyCharm的下載及安裝
1.3.1PyCharm的簡單使用
1.3.2配置PyCharm
第2章Python的語言基礎(241min)
2.1變量及標識符
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運算符
2.4Python中的縮進
2.5條件和條件語句
2.6循環(huán)語句
2.7函數(shù)
2.7.1函數(shù)的定義
2.7.2函數(shù)的調用
2.7.3函數(shù)中的參數(shù)
2.7.4匿名函數(shù)
2.7.5返回值
2.7.6內置函數(shù)
2.8面向對象
2.9錯誤和異常
2.10模塊
2.10.1導入模塊
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多進程與多線程
2.14.1線程與線程模塊
2.14.2使用threading創(chuàng)建線程
2.14.3線程同步
2.14.4守護線程
2.14.5進程與進程模塊
2.14.6使用multiprocessing創(chuàng)建進程
2.14.7進程同步
2.14.8進程池
2.14.9進程間通信
2.14.10分布式進程
應用篇
第3章Python操作數(shù)據(jù)庫(80min)
3.1MySQL簡介及安裝
3.1.1MySQL簡介
3.1.2MySQL特性
3.1.3MySQL安裝
3.1.4MySQL可視化工具
3.1.5MySQL基礎
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基礎
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基礎
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)頁的構成
4.1.2內容截取
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散點圖
5.3.3柱狀圖
5.3.4餅圖
5.3.5泡泡圖
5.3.6等高線
第6章Python與前端交互(25min)
6.1前端開發(fā)工具
6.2HTML基礎
6.2.1HTML根元素
6.2.2HTML文檔元素
6.2.3HTML分區(qū)根元素
6.2.4HTML內容分區(qū)元素
6.2.5HTML文本元素
6.2.6HTML內聯(lián)文本語義
6.2.7HTML圖片及多媒體元素
6.2.8HTML內嵌內容元素
6.2.9HTML腳本元素
6.2.10HTML表格元素
6.2.11HTML表單元素
6.3CSS基礎
6.3.1CSS寫法
6.3.2基本選擇器
6.3.3擴展選擇器
6.3.4常用樣式屬性
6.3.5盒子模型
6.4JavaScript基礎
6.4.1第1個JavaScript程序
6.4.2JavaScript基礎語法
6.4.3JavaScript操作DOM
6.4.4AJAX
6.4.5常用事件
6.4.6jQuery
6.5JSON
6.6接口編寫及測試
6.6.1創(chuàng)建服務器
6.6.2編寫登錄API
6.6.3使用POSTMAN測試接口
實戰(zhàn)篇
第7章Python Web開發(fā)實戰(zhàn)(28min)
7.1Flask基礎知識
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散點圖
7.2.4餅圖
7.2.5K線圖
7.2.6異步獲取與實時更新數(shù)據(jù)
7.3使用Flask開發(fā)短視頻數(shù)據(jù)平臺
7.3.1系統(tǒng)規(guī)劃
7.3.2數(shù)據(jù)庫設計
7.3.3模板制作
7.3.4程序開發(fā)
第8章Python項目的部署(17min)
8.1CentOS基礎
8.1.1CentOS文件結構
8.1.2CentOS常用命令
8.1.3Shell腳本基礎
8.1.4CentOS防火墻設置
8.1.5SSH工具
8.2CentOS的應用部署
8.2.1安裝Python
8.2.2安裝MySQL
8.2.3服務器監(jiān)控
8.3Flask高并發(fā)部署
8.3.1部署架構
8.3.2安裝虛擬環(huán)境
8.3.3安裝所需模塊
8.3.4安裝Nginx
8.4系統(tǒng)上線流程
8.4.1域名與云服務器
8.4.2服務器備案