本系列文章的目的是讓零基礎(chǔ)的小伙伴從零開始一步一步學(xué)習(xí)Flask框架玻淑,從零入門到能夠獨(dú)立完成一個基于Flask框架開發(fā)的網(wǎng)站并部署到服務(wù)器中积蔚。
Flask框架介紹
Flask框架誕生于2010年凸丸,是Armin ronacher用Python編寫的輕量級Web應(yīng)用程序框架蹦锋,其本身相當(dāng)于一個內(nèi)核,幾乎所有的功能都需要用到擴(kuò)展工具,都需要第三方擴(kuò)展來實現(xiàn)。
Flask框架的WSGI工具箱采用Werkzeug,模板引擎使用jinja2钠右,其中:
- WSGI:Web服務(wù)器網(wǎng)關(guān)接口(WSGI)已被采納為Python Web應(yīng)用程序開發(fā)的標(biāo)準(zhǔn),是Web服務(wù)器和Web應(yīng)用程序之間通用接口的規(guī)范忘蟹;
- Werkzeug:是一個WSGI工具包飒房,支持URL路由請求集成搁凸,一次可以響應(yīng)多個用戶的訪問請求;支持Cookie和會話管理狠毯,提高用戶訪問速度护糖;支持交互式Javascript調(diào)試,提高用戶體驗嚼松;可以處理HTTP基本事務(wù)嫡良,快速響應(yīng)客戶端推送過來的訪問請求。
- jinja2:是Python的流行模板引擎献酗,網(wǎng)頁模板系統(tǒng)將模板與特定的數(shù)據(jù)源結(jié)合起來呈現(xiàn)動態(tài)網(wǎng)頁寝受。
Flask框架作用
Flask框架是一個Python編寫的輕量級Web應(yīng)用程序框架,主要是為了開發(fā)Web應(yīng)用程序罕偎,也就是開發(fā)網(wǎng)頁很澄,所以我們學(xué)完了Flask框架就可以自己寫個網(wǎng)站了。
除了Flask框架颜及,Python還有很多web框架甩苛,例如Django,Tormado框架等俏站,其中最出名的框架是Django浪藻,最靈活的框架算是Flask。
Flask框架常用擴(kuò)展包
剛才說了乾翔,F(xiàn)lask框架本身相當(dāng)于一個內(nèi)核爱葵,幾乎所有的功能都要用到擴(kuò)展,都需要第三方的擴(kuò)展工具來實現(xiàn)反浓。
其常用的擴(kuò)展工具有:
- Flask-script:腳本工具萌丈;
- Flask-SQLalchemy:數(shù)據(jù)庫操作工具;
- Flask-migrate:管理遷移數(shù)據(jù)庫工具雷则;
- Flask-Session:Session存儲方式指定辆雾;
- Flask-WTF:表單,WTForms的渲染和驗證月劈;
- Flask-Mail:為Flask框架提供SMTP接口度迂,郵件工具;
- Flask-Bable:提供國際化和本地化支持猜揪,翻譯惭墓;
- Flask-Login:認(rèn)證用戶狀態(tài)
- Flask-OpenID:認(rèn)證;
- Flask-RESTful:開發(fā)REST API的工具而姐;
- Flask-Bootstrap:集成前端Twitter Bootstrap框架腊凶;
- Flask-Moment:本地化日期和時間;
- Flask-Admin:簡單而可擴(kuò)展的管理接口的框架。
Flask項目
簡單了解了Flask框架钧萍,現(xiàn)在我們開始創(chuàng)建一個Flask框架項目褐缠,這里我們推薦使用PyCharm,不要問為什么风瘦,問就是好用队魏,方便。
打開PyCharm創(chuàng)建我們第一個Flask項目万搔,如下圖所示:
一般情況下器躏,我們只需要修改一下項目名和選擇Python編譯器后點(diǎn)擊Create后,點(diǎn)擊This Window蟹略,
注意:由于我們的虛擬環(huán)境沒有Flask,所以在點(diǎn)擊This Window后遏佣,會報如下圖錯誤:
這些錯誤不重要挖炬,點(diǎn)擊Cancel或OK后,在PyCharm終端執(zhí)行以下代碼安裝Flask即可:
pip install flask
這樣我們就成功創(chuàng)建了一個Flask框架項目状婶,如下圖所示:
其中:
- static:靜態(tài)文件夾意敛,里面通常存放js、css膛虫、img等一些靜態(tài)文件草姻;
- templates:模板文件夾,用來保存我們html模板稍刀;
- venv:虛擬環(huán)境文件夾撩独,存放我們pip安裝的庫、模塊和擴(kuò)展工具等账月;
- app.py:項目啟動文件综膀。
創(chuàng)建完項目后,我們執(zhí)行如下代碼查看當(dāng)前項目已經(jīng)安裝了哪些包:
pip list
執(zhí)行結(jié)果如下所示:
每個人執(zhí)行的結(jié)果會有一點(diǎn)點(diǎn)區(qū)別局齿,可能會少了或多了一兩個庫剧劝,但沒關(guān)系,當(dāng)我們需要時通過pip來安裝即可抓歼。
啟動文件——app.py
在Flask框架中讥此,我們一般是通過啟動文件——app.py在PyCharm終端執(zhí)行如下代碼來啟動Flask項目:
app.py
啟動文件——app.py內(nèi)容如下所示:
from flask import Flask #導(dǎo)入Flask模塊
#創(chuàng)建Flask的實例對象
app = Flask(__name__)
#裝飾器
@app.route('/')
#視圖函數(shù)
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
首先導(dǎo)入Flask模塊,使用Flask()方法來創(chuàng)建Flask實例對象谣妻,該方法傳入的參數(shù)值name是一個適用大多情況下的快捷方式萄喳,類似文件路徑,有了這個參數(shù)蹋半,F(xiàn)lask才知道在哪里找模板取胎、靜態(tài)文件等。
使用app.route()裝飾器來告訴Flask觸發(fā)視圖函數(shù)的URL,視圖函數(shù)返回用戶在瀏覽器中顯示的信息闻蛀,
通過app.run()啟動一個web服務(wù)器來運(yùn)行我們的Flask應(yīng)用程序匪傍。
運(yùn)行Flask程序
我們可以直接運(yùn)行Flask應(yīng)用程序,也可以通過PyCharm終端運(yùn)行觉痛,這里我們推薦使用PyCharm終端來運(yùn)行役衡。
我們先什么都不做,通過PyCharm終端執(zhí)行如下代碼運(yùn)行我們Flask應(yīng)用程序:
這里有個WARNING警告:告訴我們這是一個開發(fā)服務(wù)器薪棒,不要在生產(chǎn)部署中使用它手蝎。
我們點(diǎn)擊http://127.0.0.1:5000/就會彈出一個瀏覽器,如下圖所示:
那么我們就要思考俐芯,為什么點(diǎn)擊這個網(wǎng)址就會彈出Hello World!棵介,而不是彈出其他呢。
好了吧史,關(guān)于Flask框架——第一個Flask程序就講到這里了邮辽,下篇文章學(xué)習(xí)Flask框架——路由(Route)、環(huán)境配置贸营,感謝觀看6质觥!钞脂!
公眾號:白巧克力LIN