什么是輕量級web框架Flask?很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
成都創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、網(wǎng)站建設(shè)與策劃設(shè)計(jì),烏海海南網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:烏海海南等地區(qū)。烏海海南做網(wǎng)站價(jià)格咨詢:13518219792
輕量級web框架Flask是什么?下面給大家具體介紹一下Flask框架:
Flask框架的誕生:
Flask誕生于2010年, Armin Ronacher的一個(gè)愚人節(jié)玩笑。不過現(xiàn)在已經(jīng)是一個(gè)用python語言基于Werkzeug工具箱編寫的輕量級web開發(fā)框架,它主要面向需求簡單,項(xiàng)目周期短的小應(yīng)用。
Flask本身相當(dāng)于一個(gè)內(nèi)核,其他幾乎所有的功能都要用到擴(kuò)展,都需要用第三方的擴(kuò)展來實(shí)現(xiàn)。用 extension 增加其他功能。Flask沒有默認(rèn)使用的數(shù)據(jù)庫、窗體驗(yàn)證工具。你可以選擇MySQL,也可以用NOSQL。其 WSGI 工具箱采用 Werkzeug(路由模塊),模板引擎則使用 Jinja2 .
Python最出名的框架要數(shù)Django,(也就是昨天提到的,不知道大家是否還記得)此外還有Flask、Tornado等框架。雖然Flask不是最出名的框架,但是Flask應(yīng)該算是最靈活的框架之一,這也是Flask受到廣大開發(fā)者喜愛的原因。
Flask擴(kuò)展包:
Flask-SQLalchemy:操作數(shù)據(jù)庫;
Flask-migrate:管理遷移數(shù)據(jù)庫;
Flask-Mail:郵件;
Flask-WTF:表單;
Flask-script:插入腳本;
Flask-Login:認(rèn)證用戶狀態(tài);
Flask-RESTful:開發(fā)REST API的工具;
Flask-Bootstrap:集成前端Twitter Bootstrap框架;
Flask-Moment:本地化日期和時(shí)間;
中文文檔(http://docs.jinkan.org/docs/flask/)
英文文檔(http://flask.pocoo.org/docs/0.11/)
通過對比來了解Flask:
Django:
Python Web框架里比較有名當(dāng)屬Django,Django功能全面,它提供一站式解決方案,集成了MVT(Model-View-Template)和ORM,以及后臺管理。但是缺點(diǎn)也很明顯,它偏重。就像是一個(gè)裝潢好的房子,它提供好了你要用的東西,直接拿來用就可以。
Flask:
Flask相對于Django而言是輕量級的Web框架。和Django不同,F(xiàn)lask輕巧、簡潔,通過定制第三方擴(kuò)展來實(shí)現(xiàn)具體功能。
可定制性,通過擴(kuò)展增加其功能,這是Flask最重要的特點(diǎn)。Flask的兩個(gè)主要核心應(yīng)用是Werkzeug和模板引擎Jinja.
用pip安裝flask,我們現(xiàn)在就用hello world
Flask程序運(yùn)行過程:
所有Flask程序必須有一個(gè)程序?qū)嵗?/p>
Flask調(diào)用視圖函數(shù)后,會將視圖函數(shù)的返回值作為響應(yīng)的內(nèi)容,返回給客戶端。一般情況下,響應(yīng)內(nèi)容主要是字符串和狀態(tài)碼。
用戶向?yàn)g覽器發(fā)送http請求,web服務(wù)器把客戶端所有請求交給Flask程序?qū)嵗?,程序用Werkzeug來做路由分發(fā),每個(gè)url請求,找到具體的視圖函數(shù)。路由的實(shí)現(xiàn)是通過route裝飾器實(shí)現(xiàn)的,調(diào)用視圖函數(shù),獲取數(shù)據(jù)后,把數(shù)據(jù)傳入模塊中,模塊引擎渲染響應(yīng)的數(shù)據(jù),由Flask返回給瀏覽器。
模板的基本語法:
通過修改一下前面的示例,來學(xué)習(xí)下模板的簡單使用:
Flask數(shù)據(jù)庫:
Web應(yīng)用中普遍使用的是關(guān)系模型的數(shù)據(jù)庫,關(guān)系型數(shù)據(jù)庫把所有的數(shù)據(jù)都存儲在表中,表用來給應(yīng)用的實(shí)體建模,表的列數(shù)是固定的,行數(shù)是可變的。它使用結(jié)構(gòu)化的查詢語言。關(guān)系型數(shù)據(jù)庫的列定義了表中表示的實(shí)體的數(shù)據(jù)屬性。比如:商品表里有name、price、number等。
Flask本身不限定數(shù)據(jù)庫的選擇,你可以選擇SQL或NOSQL的任何一種。也可以選擇更方便的SQLALchemy,類似于Django的ORM。SQLALchemy實(shí)際上是對數(shù)據(jù)庫的抽象,讓開發(fā)者不用直接和數(shù)據(jù)庫打交道,而是通過Python對象來操作數(shù)據(jù)庫,在舍棄一些性能開銷的同時(shí),換來的是開發(fā)效率的較大提升。
SQLALchemy是一個(gè)關(guān)系型數(shù)據(jù)庫框架,它提供了高層的ORM和底層的原生數(shù)據(jù)庫的操作。flask-sqlalchemy是一個(gè)簡化了SQLALchemy操作的flask擴(kuò)展。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。