本書重點講解Web編程的相關(guān)知識點,并搭配150多個示例代碼和兩個綜合項目,可以幫助讀者快速、深入地理解和應(yīng)用相關(guān)技術(shù)。
本書共6章。第1章Web編程簡介,主要包括Web編程的相關(guān)簡介等知識點;第2章Web開發(fā)框架簡介,主要包括Web開發(fā)框架的相關(guān)簡介等知識點;第3章Flask,主要包括Flask簡介、安裝Flask、第1個Flask項目、Flask實例對象、路由、模板、類視圖、藍圖、SQLAlchemy、Flask-SQLAlchemy、Alembic、Flask-Script、Flask-Migrate、表單驗證、Cookie和Session、上下文、鉤子函數(shù)和信號等知識點;第4章Flask項目實戰(zhàn):網(wǎng)上圖書商城,主要包括程序概述、創(chuàng)建數(shù)據(jù)庫、程序目錄結(jié)構(gòu)和程序編寫等知識點;第5章Django,主要包括Django簡介、安裝Django、第1個Django項目、路由、模板、類視圖、數(shù)據(jù)庫、表單驗證、Cookie和Session、上下文處理器、中間件和CSRF防御等知識點;第6章Django項目實戰(zhàn):網(wǎng)上圖書商城,主要包括程序概述、數(shù)據(jù)庫設(shè)計和編寫程序等知識點。
本書可以作為廣大計算機軟件技術(shù)人員的參考用書,也可以作為高等院校計算機科學(xué)與技術(shù)、自動化、軟件工程、網(wǎng)絡(luò)工程、人工智能和信息管理與信息系統(tǒng)等專業(yè)的教學(xué)參考用書。
本書是一本同時匯集了Flask和Django全開發(fā)流程的Python高階書籍。除了涵蓋知識點廣泛的特點之外,其內(nèi)容編排也非常新穎,各章節(jié)之間既有獨立性,又能遞進支撐,可以有效縮短學(xué)習(xí)的時間和成本。此外,本書搭配了多個示例代碼和綜合項目,使原本就比較難以理解和學(xué)習(xí)的Web編程變得更容易接受,極大地提升了讀者的學(xué)習(xí)樂趣和信心。
隨著互聯(lián)網(wǎng)時代的到來,眾多編程語言走進了大眾的視野。在當(dāng)前大數(shù)據(jù)、人工智能方興未艾之時,相關(guān)工作崗位所需要的技術(shù)人才更是一度出現(xiàn)供不應(yīng)求的現(xiàn)象,而Python正是應(yīng)用于上述技術(shù)領(lǐng)域的最佳編程語言。
Python橫跨多個互聯(lián)網(wǎng)核心技術(shù)領(lǐng)域,并且以其簡單高效的特點,被廣泛地應(yīng)用于各種應(yīng)用場景,包括GUI開發(fā)、游戲開發(fā)、Web開發(fā)、運維自動化、科學(xué)計算、數(shù)據(jù)可視化、數(shù)據(jù)挖掘及人工智能等。
此外,隨著國家對人工智能等技術(shù)領(lǐng)域的重視和布局,更凸顯出Python的重要地位。從2018年起,浙江省信息技術(shù)教材已啟用Python,放棄Visual Basic,這一改動也意味著Python將成為浙江高考內(nèi)容之一。更有前瞻性的是,山東省最新出版的小學(xué)信息技術(shù)教材,在六年級信息技術(shù)課本中也加入了Python的相關(guān)內(nèi)容終于小學(xué)生也開始學(xué)習(xí)Python了。
而本書正是在這樣的背景之下筆者的傾情之作。本書是Python全棧開發(fā)系列的第4冊,全書共分為6章,將重點講解主流的Web開發(fā)框架,即Flask和Django,并搭配150多個示例代碼和兩個綜合項目,理論知識與實戰(zhàn)開發(fā)并重,可以幫助讀者快速、深入地理解和應(yīng)用Web編程的相關(guān)技術(shù)。掃描目錄上方的二維碼可下載本書源碼。
著名華人經(jīng)濟學(xué)家張五常曾經(jīng)說過,即使世界上99%的經(jīng)濟學(xué)論文沒有發(fā)表,世界依然會發(fā)展成現(xiàn)在這樣子,而互聯(lián)網(wǎng)時代的發(fā)展同樣具有其必然性,所以要想成功,我們就必須順勢而為,真正地站穩(wěn)在時代的風(fēng)口之上。
衷心致謝
首先,感謝每位讀者,感謝您在茫茫書海中選擇了本書,筆者衷心地祝愿各位讀者能夠借助本書學(xué)有所成,并最終順利地完成自己的學(xué)習(xí)目標、學(xué)業(yè)考試和職業(yè)選擇。
其次,感謝筆者的導(dǎo)師、同事、學(xué)生和朋友,感謝他們不斷地鼓勵和幫助筆者,非常榮幸能夠和這些聰明、勤奮、努力、踏實的人一起學(xué)習(xí)、工作和交流。
最后,感謝筆者的父母,是他們給予了我所需要的一切,沒有他們無私的愛,就沒有筆者今天的事業(yè),更不能達成我的人生目標。
此外,本書在編寫和出版過程中得到了來自沈陽工業(yè)大學(xué)牛連強教授、大連東軟信息學(xué)院張明寶副教授、大連華天軟件有限公司陳秋男先生、51CTO學(xué)堂曹亞莉女士、印孚瑟斯技術(shù)(中國)有限公司崔巍先生和清華大學(xué)出版社趙佳霓編輯的大力支持和幫助,在此衷心地表示感謝。
在本書的編寫過程中,筆者雖然始終本著科學(xué)、嚴謹?shù)膽B(tài)度,力求精益求精,但書中難免存在疏漏之處,懇請廣大讀者批評指正。
夏正東
2025年5月1日于遼寧大連
夏正東,現(xiàn)任某網(wǎng)絡(luò)技術(shù)公司CTO,系統(tǒng)分析師,擁有十余年一線軟件開發(fā)經(jīng)驗,長期從事Web系統(tǒng)、GUI開發(fā)框架及數(shù)據(jù)分析等領(lǐng)域的研發(fā)和教學(xué)工作,精通Python、PHP、Web前端及Linux等多項技術(shù),曾就職于東軟、金山及電訊盈科等公司,多次參與沈陽市政府、大連市政府、中國移動等合作項目,并在遼寧省部分高校和企業(yè)擔(dān)任計算機專業(yè)外聘講師和資深企培講師等職務(wù)。
第1章Python Web編程簡介
第2章Python Web編程的常用概念
第3章Flask
3.1Flask簡介
3.2安裝Flask
3.3第1個Flask項目
3.4Flask實例對象
3.5路由
3.5.1路由的聲明
3.5.2唯一規(guī)則
3.5.3路由分類
3.5.4動態(tài)構(gòu)建請求URL
3.5.5HTTP請求
3.5.6路由轉(zhuǎn)換器
3.5.7重定向
3.5.8視圖函數(shù)的返回值
3.5.9自定義視圖函數(shù)裝飾器
3.6模板
3.6.1渲染模板
3.6.2模板位置
3.6.3模板變量
3.6.4模板中動態(tài)構(gòu)建請求URL
3.6.5模板中的過濾器
3.6.6模板中的控制結(jié)構(gòu)
3.6.7模板注釋
3.6.8宏
3.6.9include標簽
3.6.10set語句和with語句
3.6.11加載靜態(tài)文件
3.6.12模板繼承
3.7類視圖
3.8藍圖
3.8.1應(yīng)用藍圖
3.8.2藍圖中加載模板
3.8.3藍圖中加載靜態(tài)文件
3.8.4在藍圖中動態(tài)構(gòu)建請求URL
3.8.5在藍圖中實現(xiàn)子域名
3.9SQLAlchemy
3.9.1安裝SQLAlchemy
3.9.2創(chuàng)建數(shù)據(jù)庫引擎
3.9.3創(chuàng)建數(shù)據(jù)庫
3.9.4創(chuàng)建數(shù)據(jù)表
3.9.5CRUD操作
3.9.6外鍵
3.9.7多表間關(guān)系
3.9.8高級查詢
3.10FlaskSQLAlchemy
3.10.1安裝FlaskSQLAlchemy
3.10.2配置FlaskSQLAlchemy
3.10.3連接數(shù)據(jù)庫
3.10.4獲取數(shù)據(jù)庫對象
3.10.5創(chuàng)建數(shù)據(jù)表
3.10.6CRUD操作
3.10.7多表間關(guān)系
3.11Alembic
3.11.1安裝Alembic
3.11.2Alembic操作
3.11.3在FlaskSQLAlchemy中操作Alembic
3.12FlaskScript
3.12.1安裝FlaskScript
3.12.2創(chuàng)建自定義命令
3.13FlaskMigrate
3.13.1安裝FlaskMigrate
3.13.2FlaskMigrate操作
3.14表單驗證
3.14.1安裝WTForms和FlaskWTF
3.14.2HTML表單驗證
3.14.3文件上傳驗證
3.15Cookie和Session
3.15.1設(shè)置、獲取和刪除Cookie
3.15.2設(shè)置、獲取和刪除Session
3.16CSRF防御
3.17上下文
3.17.1應(yīng)用上下文
3.17.2請求上下文
3.17.3應(yīng)用上下文和請求上下文的區(qū)別
3.18鉤子函數(shù)
3.19信號
3.19.1信號的安裝
3.19.2自定義信號
3.19.3內(nèi)置信號
第4章Flask項目實戰(zhàn): 網(wǎng)上圖書商城
4.1程序概述
4.2創(chuàng)建數(shù)據(jù)庫
4.3程序目錄結(jié)構(gòu)
4.4程序編寫
第5章Django
5.1Django簡介
5.2安裝Django
5.3第1個Django項目
5.4路由
5.4.1視圖函數(shù)
5.4.2URL映射
5.4.3HttpRequest對象
5.4.4QueryDict對象
5.4.5HttpResponse對象
5.4.6JsonResponse對象
5.4.7重定向
5.4.8動態(tài)路由
5.4.9動態(tài)構(gòu)建請求URL
5.4.10路由分發(fā)
5.4.11路由轉(zhuǎn)換器
5.4.12限制請求方法
5.5模板
5.5.1渲染模板
5.5.2模板位置
5.5.3模板變量
5.5.4模板中的控制結(jié)構(gòu)
5.5.5模板注釋
5.5.6常用標簽
5.5.7模板中的過濾器
5.5.8模板繼承
5.5.9加載靜態(tài)文件
5.6類視圖
5.7數(shù)據(jù)庫
5.7.1定義數(shù)據(jù)模型
5.7.2Manager類和QuerySet類
5.7.3查詢條件
5.7.4常用字段
5.7.5Meta類
5.7.6外鍵
5.7.7多表間關(guān)系
5.8表單驗證
5.8.1HTML表單驗證
5.8.2上傳文件驗證
5.8.3ModelForm類
5.9Cookie和Session
5.9.1設(shè)置、獲取和刪除Cookie
5.9.2設(shè)置、獲取和刪除Session
5.10上下文處理器
5.11中間件
5.12CSRF防御
第6章Django項目實戰(zhàn): 網(wǎng)上圖書商城
6.1程序概述
6.2數(shù)據(jù)庫設(shè)計
6.3編寫程序