flask的安裝非常簡單。
sudo pip install Flask
運行上述命令之后,flask依賴的兩個外部庫Werkzeug和Jinjia2都會自動安裝好。
最小的flask應用
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/saihi')
def hi_flask():
return 'Hi flask!'
if __name__ == '__main__':
app.run()
上述代碼保存為hello.py,然后用python來運行這個python文件即可。
ubuntu@VM-149-75-ubuntu:~/flask/FirstProject$ sudo python hello.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
那么,這段代碼做了什么?
首先,我們導入了 Flask 類。這個類的實例將會是我們的 WSGI 應用程序。
接下來,我們創(chuàng)建一個該類的實例,第一個參數(shù)是應用模塊或者包的名稱。 如果你使用單一的模塊(如本例),你應該使用 __name__ ,因為模塊的名稱將會因其作為單獨應用啟動還是作為模塊導入而有不同( 也即是 '__main__' 或實際的導入名)。這是必須的,這樣 Flask 才知道到哪去找模板、靜態(tài)文件等等。詳情見 Flask的文檔。
然后,我們使用 route() 裝飾器告訴 Flask 什么樣的URL 能觸發(fā)我們的函數(shù)。
這個函數(shù)的名字也在生成 URL 時被特定的函數(shù)采用,這個函數(shù)返回我們想要顯示在用戶瀏覽器中的信息。
最后我們用 run() 函數(shù)來讓應用運行在本地服務器上。 其中 if__name__=='__main__': 確保服務器只會在該腳本被 Python 解釋器直接執(zhí)行的時候才會運行,而不是作為模塊導入的時候。
外部可訪問的服務器
如果你運行了這個服務器,你會發(fā)現(xiàn)它只能從你自己的計算機上訪問,網(wǎng)絡中其它任何的地方都不能訪問。在調試模式下,用戶可以在你的計算機上執(zhí)行任意 Python 代碼。因此,這個行為是默認的。
如果你禁用了debug或信任你所在網(wǎng)絡的用戶,你可以簡單修改調用run()的方法使你的服務器公開可用,如下:
app.run(host='0.0.0.0')
這會讓操作系統(tǒng)監(jiān)聽所有公網(wǎng) IP。
也可以在調用app.run()之前調用app.debug=True來開啟debug模式。
訪問結果如下:
非常簡單。網(wǎng)址與函數(shù)的對應關系更加直接。@app.route修飾的是網(wǎng)址,后面直接跟對應的函數(shù)。在django中,還得理解正則表達式才能把網(wǎng)址到函數(shù)的關系寫好,還涉及多個文件。
接下來幾天,學習一下flask吧,感覺上手會很快。