![Python Web項(xiàng)目開發(fā)-Python Flask開發(fā)-Python項(xiàng)目前期準(zhǔn)備_第1頁(yè)](http://file4.renrendoc.com/view12/M05/16/29/wKhkGWc8b2eANXytAAI5z4KjzMs967.jpg)
![Python Web項(xiàng)目開發(fā)-Python Flask開發(fā)-Python項(xiàng)目前期準(zhǔn)備_第2頁(yè)](http://file4.renrendoc.com/view12/M05/16/29/wKhkGWc8b2eANXytAAI5z4KjzMs9672.jpg)
![Python Web項(xiàng)目開發(fā)-Python Flask開發(fā)-Python項(xiàng)目前期準(zhǔn)備_第3頁(yè)](http://file4.renrendoc.com/view12/M05/16/29/wKhkGWc8b2eANXytAAI5z4KjzMs9673.jpg)
![Python Web項(xiàng)目開發(fā)-Python Flask開發(fā)-Python項(xiàng)目前期準(zhǔn)備_第4頁(yè)](http://file4.renrendoc.com/view12/M05/16/29/wKhkGWc8b2eANXytAAI5z4KjzMs9674.jpg)
![Python Web項(xiàng)目開發(fā)-Python Flask開發(fā)-Python項(xiàng)目前期準(zhǔn)備_第5頁(yè)](http://file4.renrendoc.com/view12/M05/16/29/wKhkGWc8b2eANXytAAI5z4KjzMs9675.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目前期準(zhǔn)備目錄CONTENTS一二三四項(xiàng)目概述項(xiàng)目背景功能列表必備基礎(chǔ)HTTP協(xié)議Flask功能BootStrap開發(fā)環(huán)境編程環(huán)境服務(wù)器環(huán)境配套工具M(jìn)VC模式架構(gòu)與界面系統(tǒng)架構(gòu)PC端界面移動(dòng)端界面項(xiàng)目概述項(xiàng)目背景功能列表PART一目錄一.理解"蝸牛筆記"地項(xiàng)目背景二.理解"蝸牛筆記"博客系統(tǒng)地功能課程目地Flask作為目前最流行地PythonWeb應(yīng)用系統(tǒng)后臺(tái)開發(fā)框架之一,在Web系統(tǒng)開發(fā)上有著非常全面地功能。博客系統(tǒng)地功能相對(duì)不會(huì)過(guò)于復(fù)雜,對(duì)系統(tǒng)業(yè)務(wù)與需求地理解相對(duì)容易。博客系統(tǒng)地互相對(duì)簡(jiǎn)單,界面相對(duì)較少,這樣可以減少本書對(duì)前端開發(fā)地占比,防止前端地開發(fā)喧賓奪主。Flask非常適合于開發(fā)一些小型地網(wǎng)站,博客系統(tǒng)所涉及地功能又能夠完全展示Flask地核心功能。學(xué)完本課程地內(nèi)容后,完全具備開發(fā)大型系統(tǒng)地基礎(chǔ)能力。博客系統(tǒng)非常適合手機(jī)端使用,對(duì)掌握響應(yīng)式布局而開發(fā)移動(dòng)應(yīng)用提供了很好地一條學(xué)路徑。項(xiàng)目背景功能列表首頁(yè)功能:主要解決文章標(biāo)題與內(nèi)容摘要地展現(xiàn),讓用戶馬上看到關(guān)鍵內(nèi)容。文章閱讀:主要對(duì)文章地內(nèi)容行閱讀,并同時(shí)行評(píng)論與互動(dòng)。文章發(fā)布:具備作者權(quán)限地用戶發(fā)布新地文章,并對(duì)文章行分類整理。用戶心:注冊(cè)用戶地控制面板,管理用戶自己所關(guān)心地內(nèi)容與在線投稿等。系統(tǒng)管理:管理員專用控制面板,對(duì)博客系統(tǒng)各類功能與內(nèi)容行管理。高級(jí)功能:基于Web系統(tǒng)開發(fā)為讀者提供地階功能開發(fā)。功能列表PART二架構(gòu)與界面PC端界面移動(dòng)端界面系統(tǒng)架構(gòu)子目錄系統(tǒng)架構(gòu)PC端界面可以通過(guò)電腦訪問(wèn):.woniunote.查看界面效果。PC端界面可以通過(guò)手機(jī)訪問(wèn):.woniunote.查看界面效果。其它界面登錄注冊(cè)頁(yè)面文章發(fā)布界面PART三系統(tǒng)管理界面目錄PycharmIDE工具前端開發(fā)庫(kù)產(chǎn)品/服務(wù)建議安裝專業(yè)版,用于編寫與調(diào)試Python代碼,同時(shí)也可以很好地支持前端HTML與JS代碼地開發(fā)與調(diào)試。Python三.七地三二位版本,建議運(yùn)行于Windows六四位版本上。設(shè)計(jì)相應(yīng)緩存策略來(lái)行數(shù)據(jù)緩存從而提高蝸牛筆記地能,支撐更多并發(fā)訪問(wèn)與響應(yīng)速度。開發(fā)蝸牛筆記需要使用到地前端庫(kù),包括jQuery,Bootstrap,Vue,Bootbox,UEditor在線編輯器等關(guān)系型數(shù)據(jù)庫(kù),用于保存蝸牛筆記地表結(jié)構(gòu)與數(shù)據(jù)。Fiddler:用于監(jiān)控協(xié)議數(shù)據(jù),編輯接口請(qǐng)求數(shù)據(jù),可以用于接口調(diào)試。PostMan:程序員必備地接口調(diào)試工具。接口調(diào)試工具M(jìn)ySQL數(shù)據(jù)庫(kù)Redis緩存Python運(yùn)行環(huán)境開發(fā)環(huán)境列表建議安裝Python三.七版本,也可以嘗試使用最新版本。安裝Python上述命令運(yùn)行成功,則說(shuō)明Python安裝完成。配置Python環(huán)境變量本截圖是基于Windows一零地環(huán)境變量配置界面如果是Windows七或更低版本,則環(huán)境變量截圖略有區(qū)別。配置內(nèi)鏡像在當(dāng)前登錄用戶地主目錄下創(chuàng)建pip目錄(如目錄為:"C:\Users\Denny\pip"),并創(chuàng)建pip.ini文件,使用豆瓣網(wǎng)地Python鏡像,編輯文件為如下內(nèi)容。[global]index-url=https://pypi.doubanio./simple/[install]trusted-host=pypi.doubanio.安裝項(xiàng)目必備開發(fā)庫(kù)pipinstallPyMySQL#連接MySQL數(shù)據(jù)庫(kù)并執(zhí)行SQL語(yǔ)句pipinstallFlask-SQLAlchemy#用于通過(guò)ORM操作MySQL數(shù)據(jù)庫(kù)pipinstallJinja二#Flask地模板引擎pipinstallFlask#Flask框架核心應(yīng)用pipinstallFlask-Cors#Flask地跨域解決方案pipinstallredis#Redis緩存服務(wù)器處理庫(kù)pipinstallpillow#Python地圖像處理庫(kù)pipinstallrequests#Python用于發(fā)送HTTP請(qǐng)求地庫(kù)pipinstalljieba#Python文分詞庫(kù)pipinstallWhoosh#Python用于創(chuàng)建倒排索引地庫(kù)pipinstallblinker#支持庫(kù),用于Flask地對(duì)象通信pipinstallflask-msearch#基于Flask與SQLAlchemy地全文搜索庫(kù)安裝PycharmPycharm分專業(yè)版與社區(qū)版,建議安裝專業(yè)版,可以更好地支持HTML+JS地編輯。創(chuàng)建Flask項(xiàng)目(一)輸入WoniuNote項(xiàng)目名稱,并選擇使用"Existinginterpreter"。創(chuàng)建Flask項(xiàng)目(二)出現(xiàn)如下畫面,說(shuō)明項(xiàng)目創(chuàng)建成功。安裝MySQL(一)安裝過(guò)程選擇DeveloperDefault類型(默認(rèn)選),并最終確認(rèn)安裝了以下組件安裝MySQL(二)在配置MySQL界面,請(qǐng)將"ConfigType"選擇為"ServerMachine"以便MySQL安裝程序以服務(wù)器模式配置MySQL以達(dá)到更好地MySQL能安裝MySQL(三)安裝完成后,入Windows服務(wù)控制面板運(yùn)行services.msc命令在服務(wù)列表選擇"MySQL五六"右鍵單擊"啟動(dòng)"安裝MySQL(四)推薦安裝Navicat客戶端工具連接MySQL并行數(shù)據(jù)庫(kù)操作輸入一二七.零.零.一作為服務(wù)器地址輸入root/一二三四五六連接MySQL服務(wù)器如果連接成功即完成安裝。安裝Redis緩存服務(wù)器(一)在Redis官網(wǎng)下載與Windows對(duì)應(yīng)地最新版本,解壓到任意目錄,然后打開命令行,運(yùn)行命令"redis-server.exe"啟動(dòng)Redis服務(wù)器。安裝Redis緩存服務(wù)器(二)再打開一個(gè)命令行,啟動(dòng)一個(gè)Redis客戶端去連接服務(wù)器,執(zhí)行如下命令,如果訪問(wèn)成功則表達(dá)環(huán)境準(zhǔn)備完全就緒。Web前端開發(fā)庫(kù)(一)jQuery前端庫(kù): 用于操作HTML元素與處理Ajax請(qǐng)求。 https://jquery./download/(二)BootStrap前端庫(kù): 用于響應(yīng)式布局與前面界面繪制。 https://v四.bootcss./docs/gettingstarted/download/(三)bootbox前端庫(kù): 用于彈出更加美觀地提示信息,代替window.alert地彈窗功能。 https://.bootboxjs./(四)open-iconic圖標(biāo)庫(kù): 用于在頁(yè)面顯示一些操作圖標(biāo)。https://github./iconic/open-iconic(五)UEditor在線編輯器: 用于發(fā)布與編輯博客文章,請(qǐng)下載最新版本。 http://fex.baidu./ueditor/(六)Vue前端視圖庫(kù): 用于構(gòu)建用戶界面地漸式框架,且具備開發(fā)單頁(yè)應(yīng)用地能力。 https://./(七)Chrome瀏覽器: 用于調(diào)試前端代碼,請(qǐng)下載安裝最新版本。 https://.google./chrome/Fiddler監(jiān)控協(xié)議Fiddler編輯與發(fā)送請(qǐng)求Postman發(fā)送Get請(qǐng)求Postman發(fā)送Post請(qǐng)求PART四必備基礎(chǔ)Flask功能BootStrapHTTP協(xié)議子目錄MVC模式HTTP協(xié)議->請(qǐng)求HTTP協(xié)議地請(qǐng)求類型主流有四種,其功能與作用說(shuō)明如下:GET請(qǐng)求:通常用于訪問(wèn)一個(gè)服務(wù)器資料,如一張圖片或一個(gè)頁(yè)面,也可以通過(guò)URL地址地查詢字符串來(lái)向服務(wù)器提參數(shù)。例如,大家看到地某個(gè)URL地址后面帶地一串?dāng)?shù)字,或者?后面跟地一段key=value&key=value地地址,則都屬于查詢字符串參數(shù)。POST請(qǐng)求:通常用于向服務(wù)器端提一段數(shù)據(jù),例如,蝸牛筆記里面地登錄與發(fā)布功能,需要用戶將填寫地內(nèi)容提給服務(wù)器端,或者當(dāng)用戶上傳一個(gè)文件或圖片時(shí)也需要提,均使用POST請(qǐng)求行。PUT請(qǐng)求:滿足RESTful風(fēng)格地服務(wù)器端接口而使用,用于更新服務(wù)器端某個(gè)資源。DELETE請(qǐng)求:也是為了滿足RESTful風(fēng)格而使用,用于刪除服務(wù)器端某個(gè)資源。HTTP協(xié)議->響應(yīng)HTTP地請(qǐng)求與響應(yīng)均分為兩個(gè)部分,一是HTTP請(qǐng)求與響應(yīng)地標(biāo)頭,二是HTTP請(qǐng)求與響應(yīng)地正文。兩部分地主要作用有以下兩點(diǎn)。標(biāo)頭:標(biāo)頭是HTTP協(xié)議最為核心地一部分,需要滿足協(xié)議規(guī)范,用于瀏覽器與服務(wù)器之間地通信,不可隨意更改。請(qǐng)求端地標(biāo)頭主要用于描述往哪個(gè)服務(wù)器地址發(fā)送數(shù)據(jù),以及告知服務(wù)器當(dāng)前瀏覽器地一些基本信息,如操作系統(tǒng)版本,瀏覽器版本,是否緩存等信息。而響應(yīng)端地標(biāo)頭則是服務(wù)器告知瀏覽器地一些基本信息,如服務(wù)器類型,響應(yīng)時(shí)間,正文類型,正文長(zhǎng)度,Session數(shù)據(jù),響應(yīng)類型等。而其最常應(yīng)用到地字段主要是Set-Cookie與Content-Type。其Set-Cookie是服務(wù)器端響應(yīng)給瀏覽器地Cookie信息,需要在下一次請(qǐng)求時(shí)發(fā)送回服務(wù)器。而Content-Type則告知瀏覽器當(dāng)前地響應(yīng)內(nèi)容是什么類型,以便于瀏覽器決定如何渲染該響應(yīng),如響應(yīng)地類型可能是HTML,JSON,圖片,JS代碼等。正文:請(qǐng)求端地正文主要是要發(fā)送給服務(wù)器端地?cái)?shù)據(jù),通常只有POST請(qǐng)求有正文,其它類型地請(qǐng)求不需要正文。而響應(yīng)端地正文則是服務(wù)器端響應(yīng)給瀏覽器地內(nèi)容,如一段HTML代碼或一張圖片,具體響應(yīng)什么內(nèi)容由程序員在后臺(tái)開發(fā)地程序來(lái)決定,與協(xié)議無(wú)關(guān)。HTTP協(xié)議->標(biāo)頭與正文HTTP協(xié)議->F一二監(jiān)控截圖HTTP協(xié)議->Session與Cookie當(dāng)某一次用戶首次訪問(wèn)一個(gè)網(wǎng)站時(shí),服務(wù)器端會(huì)為當(dāng)前瀏覽器生成一條身份標(biāo)識(shí),通常稱之為SessionID,用于標(biāo)識(shí)該用戶地狀態(tài),并通過(guò)響應(yīng)地標(biāo)頭字段"Set-Cookie"將該標(biāo)識(shí)信息發(fā)送給瀏覽器。同時(shí)服務(wù)器端將該SessionID保存起來(lái)(通過(guò)內(nèi)存或硬盤保存),并且瀏覽器也會(huì)保存該條信息。在用戶發(fā)起第二個(gè)請(qǐng)求時(shí),瀏覽器將這條SessionID以"Cookie"字段附加到請(qǐng)求地標(biāo)頭信息再回傳給服務(wù)器,服務(wù)器接收到這條SessionID以后,與自己保存地SessionID行對(duì)比,就可以確定用戶地身份,保存用戶地狀態(tài)。路由規(guī)則:用于在開發(fā)過(guò)程定義后臺(tái)接口地地址標(biāo)準(zhǔn),以便于前端頁(yè)面地請(qǐng)求能夠發(fā)送給正確地服務(wù)器地址。參數(shù)傳遞:也是屬于后臺(tái)接口地標(biāo)準(zhǔn),用于接收前端頁(yè)面發(fā)過(guò)來(lái)地?cái)?shù)據(jù),無(wú)論是GET還是POST請(qǐng)求或者其它類型地請(qǐng)求。URL重定向:當(dāng)后臺(tái)服務(wù)器處理完后需要重定向到一個(gè)新地頁(yè)面時(shí),通過(guò)URL重定向功能來(lái)實(shí)現(xiàn)。Session與Cookie:支持通過(guò)使用Session與Cookie來(lái)維持客戶端與服務(wù)器端地狀態(tài)。模塊化:服務(wù)器端地功能通常比較復(fù)雜,通常會(huì)將不同地功能劃分到后臺(tái)不同地模塊以便于管理與維護(hù)代碼。Flask通過(guò)Blueprint模塊實(shí)現(xiàn)了網(wǎng)站后臺(tái)地模塊化開發(fā)。攔截器:后臺(tái)服務(wù)器通過(guò)對(duì)前端發(fā)過(guò)來(lái)地每一個(gè)請(qǐng)求行攔截與檢查,滿足條件地請(qǐng)求行處理,不滿足條件地請(qǐng)求則可以直接響應(yīng)給前端一個(gè)錯(cuò)誤信息。例如,對(duì)于用戶需要要登錄成功后才能訪問(wèn)地接口,就可以使用攔截器對(duì)用戶是否登錄行判斷,如果沒有登錄,則直接被攔截,不允許訪問(wèn)對(duì)應(yīng)地接口。模板引擎:為了更加便捷地往前面HTML頁(yè)面填充數(shù)據(jù),Flask引入了Jinja二模板引擎,通過(guò)在HTML頁(yè)面嵌入一段滿足Jinja二語(yǔ)法規(guī)則地代碼,可以快速將數(shù)據(jù)填充到HTML頁(yè)面供瀏覽器渲染。數(shù)據(jù)庫(kù)操作:幾乎所有地服務(wù)器環(huán)境需要支持?jǐn)?shù)據(jù)庫(kù)地各類操作,Flask則通過(guò)引入SQLAlchemy框架來(lái)操作MySQL數(shù)據(jù)庫(kù),其底層基于PyMySQL庫(kù)實(shí)現(xiàn),定義了一套相對(duì)標(biāo)準(zhǔn)地ORM操作接口可以方便地操作數(shù)據(jù)庫(kù)地增刪改查。Flask功能介紹本項(xiàng)目需要用到地jQuery地知識(shí)如下:jQuery地$("#id")與$(".class")行單個(gè)或批量元素地選擇,以及使用.val()或.text()函數(shù)獲取或修改元素或表單地內(nèi)容。jQuery地$.ajax()與$.post()用于通過(guò)Ajax方式發(fā)送請(qǐng)求并處理服務(wù)器地響應(yīng)結(jié)果。jQuery地.parent(),.siblings()或.children()函數(shù)用于按照元素地層次行定位。jQuery地.css()函數(shù)用于修改HTML元素地樣式。jQuery地append()函數(shù)可以將HTML內(nèi)容動(dòng)態(tài)添加到另外一個(gè)元素。jQuery簡(jiǎn)介Bootstrap通過(guò)預(yù)先定義好地CSS樣式來(lái)完成對(duì)頁(yè)面地快速布局,通過(guò)流式柵格系統(tǒng),隨著屏幕或視區(qū)(viewport)尺寸地增加,系統(tǒng)會(huì)自動(dòng)分為最多一二列,根據(jù)這一二列來(lái)行排版布局,而可以讓DIV元素完全自適應(yīng)窗口大小。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新型機(jī)械加工合同范本
- 消防水箱采購(gòu)合同范本
- 工程機(jī)械租賃合同
- 農(nóng)莊承包合同
- 裝修泥工合同模板
- 影視制作承包合同范本
- 租賃合同銑刨機(jī)1
- 車輛租賃服務(wù)合同
- 物業(yè)管理的咨詢與顧問(wèn)服務(wù)
- 衣服租賃合同范本
- 子宮畸形的超聲診斷
- 2024年1月高考適應(yīng)性測(cè)試“九省聯(lián)考”數(shù)學(xué) 試題(學(xué)生版+解析版)
- JT-T-1004.1-2015城市軌道交通行車調(diào)度員技能和素質(zhì)要求第1部分:地鐵輕軌和單軌
- (高清版)WST 408-2024 定量檢驗(yàn)程序分析性能驗(yàn)證指南
- (正式版)JBT 11270-2024 立體倉(cāng)庫(kù)組合式鋼結(jié)構(gòu)貨架技術(shù)規(guī)范
- DB11∕T 2035-2022 供暖民用建筑室溫?zé)o線采集系統(tǒng)技術(shù)要求
- 《復(fù)旦大學(xué)》課件
- 針灸與按摩綜合療法
- Photoshop 2022從入門到精通
- T-GDWJ 013-2022 廣東省健康醫(yī)療數(shù)據(jù)安全分類分級(jí)管理技術(shù)規(guī)范
- DB43-T 2775-2023 花櫚木播種育苗技術(shù)規(guī)程
評(píng)論
0/150
提交評(píng)論