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