本書從Flask框架的基礎知識講起,逐步深入到使用Flask進行Web應用開發(fā)實戰(zhàn)。其中,重點介紹了使用Flask SQLAlchemy進行服務端開發(fā),以及使用Jinja 2模板引擎和Bootstrap進行前端頁面開發(fā)的方法,不但可以讓讀者系統(tǒng)地學習用Python微型框架開發(fā)Web應用的相關知識,而且還能對Web開發(fā)中基于角色訪問權限控制的方法等相關知識有更為深入的理解。本書提供了大量的實戰(zhàn)案例引導讀者由淺入深地學習Flask Web應用開發(fā),可以讓讀者的開發(fā)水平有質的提升。
本書共16章,分為3篇。第1篇為Flask基礎知識,介紹了Flask開發(fā)的環(huán)境部署及入門知識,內容涵蓋了Flask程序的基本結構、Jinja 2模板、Web表單、SQLAlchemy管理數(shù)據(jù)庫、裝飾器的定義和使用、Memcached緩存技術等;第2篇為CMS新聞系統(tǒng)開發(fā),介紹了數(shù)據(jù)庫設計、數(shù)據(jù)庫遷移、無限級分類的實現(xiàn)、登錄日志、角色的訪問權限控制等內容;第3篇為網(wǎng)站上線準備及部署,介紹了Web程序上線部署前必須要進行的單元測試、性能優(yōu)化和環(huán)境部署等內容。
本書內容通俗易懂,案例豐富,實用性強,特別適合Python Web開發(fā)的入門讀者和進階讀者學習,也適合PHP程序員和Java程序員等其他Web開發(fā)愛好者閱讀。另外,本書可以作為相關培訓機構的教材用書。
Flask誕生于2010年,是Armin ronacher用Python語言基于Werkzeug工具箱編寫的輕量級Web開發(fā)框架。時至今日,使用Flask開發(fā)Web等應用程序的人越來越多,使用Flask微框架也越來越流行。
目前,Python的就業(yè)前景還是非常好的。國內Python人才需求呈大規(guī)模上升,薪資水平也水漲船高。在Linux運維、Python Web網(wǎng)站工程師、Python自動化測試、數(shù)據(jù)分析和人工智能等諸多領域,對Python人才的需求非常旺盛。目前,業(yè)內幾乎所有大中型互聯(lián)網(wǎng)企業(yè)都在使用Python,如Youtube、Dropbox、BT、Quora(類似于中國的知乎)、豆瓣、知乎、Google、Yahoo、Facebook、NASA、百度、騰訊、汽車之家和美團等。很多知名企業(yè)的網(wǎng)站,諸如豆瓣、知乎和拉勾網(wǎng)等都是用Python語言開發(fā)的。熟練掌握Python語言與Python框架Flask,入職名企妥妥的。
Flask的優(yōu)勢
Web網(wǎng)站發(fā)展至今,特別是服務器端,涉及的知識非常廣泛,這對程序員的要求會越來越高。如果采用成熟、穩(wěn)健的框架,那么一些諸如安全性、數(shù)據(jù)流控制等類型的基礎性工作都可以讓框架來處理,而程序開發(fā)人員則可以把更多的精力放在具體業(yè)務邏輯功能的實現(xiàn)和優(yōu)化上。
使用Flask框架的優(yōu)勢有以下幾點:
可以大大降低開發(fā)難度,提高開發(fā)效率,讓快速、高效的Web開發(fā)成為可能。
可以帶來系統(tǒng)穩(wěn)定性和可擴展性的提升。Flask自由、靈活、可擴展性強、第三方庫的選擇面廣,用第三方庫可以實現(xiàn)自己想要的功能,而且很多第三方庫還可以定制與裁減。
對于初學者來說簡單易學,入門門檻很低,即便沒有多少Web開發(fā)經(jīng)驗,也能很快做出網(wǎng)站,大大節(jié)約了初學者的學習成本。
綜上所述,F(xiàn)lask是一個用Python語言編寫的Web微框架,可以讓開發(fā)人員快速開發(fā)各種Web應用。
筆者在長期的Flask框架使用過程中有切身體會:使用該框架進行Web開發(fā),的確省時、省事、省力。比如表單數(shù)據(jù)的校驗、CSRF攻擊與防御等提供了相應模塊,直接拿過來就可以使用。默認情況下,F(xiàn)lask不包含數(shù)據(jù)庫抽象層和表單驗證等功能。然而Flask支持用擴展來給應用添加這些功能,就如同是用Flask實現(xiàn)的一樣。眾多的擴展提供了數(shù)據(jù)庫集成、表單驗證、上傳處理和各種各樣的開放認證技術等功能。為了把這些心得體會分享給廣大的Web開發(fā)人員,筆者編寫了本書。本書主要介紹了如何基于Python的微框架Flask進行Web開發(fā),內容安排從易到難,講解由淺入深、循序漸進,可以幫助讀者快速掌握Flask Web開發(fā)的大部分常用技術點。
本書特色
由淺入深:本書從基本的開發(fā)環(huán)境配置講起,層層深入到實際項目案例開發(fā),切實為讀者朋友提供了高效學習Flask框架的好方法。
內容全面:本書涵蓋Flask開發(fā)的方方面面,包括Jinja 2、視圖操作、數(shù)據(jù)庫訪問、Memcached緩存和Bootstrap等眾多內容。
實例眾多:本書注重講練結合,講解的實例多達116個,還提供了28個配套編程練習題,讓讀者朋友可以通過大量的動手實踐迅速掌握Flask開發(fā)。
注重實戰(zhàn):本書第2、3篇結合新聞系統(tǒng)網(wǎng)站開發(fā),將一個完整的動態(tài)網(wǎng)站項目劃分為典型的工作任務,讓讀者在完成工作任務的過程中學習新技術和新技能。
本書內容
第1篇 Flask基礎知識(第1~8章)
本篇主要介紹了Flask開發(fā)環(huán)境的部署與配置,并重點介紹了Flask開發(fā)所需要掌握的基礎知識,涵蓋Flask程序基本結構、Jinja 2模板引擎、高級視圖、Flask數(shù)據(jù)交互、數(shù)據(jù)庫訪問和Memcached緩存系統(tǒng)等內容。
第2篇 CMS新聞系統(tǒng)開發(fā)(第9~14章)
本篇主要介紹了CMS系統(tǒng)后臺管理員登錄實現(xiàn)、CMS系統(tǒng)后臺文章模塊基本功能實現(xiàn)、CMS后臺基本評論及登錄日志等功能實現(xiàn)、基于角色的訪問控制功能實現(xiàn)、CMS網(wǎng)站前臺功能實現(xiàn)和CMS系統(tǒng)代碼優(yōu)化等相關內容,涉及數(shù)據(jù)庫設計、數(shù)據(jù)庫遷移、無限級分類、登錄日志、角色訪問權限控制等相關知識點。
第3篇 網(wǎng)站上線準備(第15、16章)
本篇主要介紹了Web程序上線部署前必須要進行的單元測試、性能優(yōu)化和環(huán)境部署等相關內容。
配套資源獲取方式
本書涉及的源代碼文件等配套資料需要讀者自行下載。請在華章公司的網(wǎng)站www.hzbook.com上搜索到本書,然后單擊資料下載按鈕,即可在本書頁面上找到配書資源下載鏈接,單擊該鏈接即可下載。
本書讀者對象
本書適合熟悉Python編程語言,并具備CSS、HTML和jQuery等前端開發(fā)基礎知識,且有志于通過Flask框架開發(fā)Web應用的編程愛好者、程序員和軟件工程師等人員學習和參考,另外還適合Flask全棧開發(fā)培訓機構的培訓學員。主要如下:
想用Python快速開發(fā)網(wǎng)站的人員;
前端開發(fā)者想要學習后端開發(fā)技術的程序員;
熟悉Python其他框架的開發(fā)人員;
熟悉Java和PHP等編程語言而想快速開發(fā)網(wǎng)站的程序員;
其他Web編程愛好者;
各大院校的學生;
相關培訓機構的學員。
如果你是這幾類人中的一員,那么本書就適合你。只要你能堅持學習完本書內容,并按本書設計的案例和習題進行動手實踐和思考,相信當你完成了書中的所有項目案例后,就可以勝任網(wǎng)站開發(fā)這項工作了。
本書作者
本書由錢游編寫完成。筆者長期使用Flask技術進行Web應用開發(fā),有十余年軟件開發(fā)經(jīng)驗,在Web開發(fā)、微商城開發(fā)、Android移動開發(fā)等領域有豐富的實戰(zhàn)經(jīng)驗。筆者現(xiàn)在從事移動互聯(lián)網(wǎng)與物聯(lián)網(wǎng)應用等領域的開發(fā)與研究。
在本書的編寫過程中,為確保內容的正確性而參閱了很多資料。在此,對本書所參考的資料或圖書的原作者表示誠懇的感謝!對不能一一標明資料來源的作者表示真誠的歉意和敬意!對直接或間接為本書的出版傾注了智慧、付出了心力、提供了良好建議及幫助的所有人表示感謝!
由于水平所限,加之寫作時間倉促,書中難免存在錯誤和不嚴謹之處,懇請同行專家和讀者不吝指正。讀者在閱讀本書的過程中若有疑問,可以發(fā)電子郵件獲得幫助。
編著者