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