Flask 一個(gè)最小的應(yīng)用

2021-12-10 13:55 更新

一個(gè)最小的 Flask 應(yīng)用看起來(lái)會(huì)是這樣:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

把它保存為 hello.py (或是類似的),然后用 Python 解釋器來(lái)運(yùn)行。 確保你的應(yīng)用文件名不是 flask.py ,因?yàn)檫@將與 Flask 本身沖突。

$ python hello.py
 * Running on http://127.0.0.1:5000/

現(xiàn)在訪問(wèn) http://127.0.0.1:5000/ ,你會(huì) 看見(jiàn) Hello World 問(wèn)候。

那么,這段代碼做了什么?

  • 首先,我們導(dǎo)入了 Flask 類。這個(gè)類的實(shí)例將會(huì)是我 們的 WSGI 應(yīng)用程序。
  • 接下來(lái),我們創(chuàng)建一個(gè)該類的實(shí)例,第一個(gè)參數(shù)是應(yīng)用模塊或者包的名稱。 如果你使用單一的模塊(如本例),你應(yīng)該使用 __name__ ,因?yàn)槟K 的名稱將會(huì)因其作為單獨(dú)應(yīng)用啟動(dòng)還是作為模塊導(dǎo)入而有不同( 也即是 '__main__' 或?qū)嶋H的導(dǎo)入名)。這是必須的,這樣 Flask 才知道到哪去找模板、靜態(tài)文件等等。詳情見(jiàn) Flask 的文檔。
  • 然后,我們使用 route() 裝飾器告訴 Flask 什么樣 的URL 能觸發(fā)我們的函數(shù)。
  • 這個(gè)函數(shù)的名字也在生成 URL 時(shí)被特定的函數(shù)采用,這個(gè)函數(shù)返回我們想 要顯示在用戶瀏覽器中的信息。
  • 最后我們用 run() 函數(shù)來(lái)讓?xiě)?yīng)用運(yùn)行在本地服務(wù)器上。 其中 if __name__ == '__main__': 確保服務(wù)器只會(huì)在該腳本被 Python 解釋器直接執(zhí)行的時(shí)候才會(huì)運(yùn)行,而不是作為模塊導(dǎo)入的時(shí)候。
  • 欲關(guān)閉服務(wù)器,按 Ctrl+C。

    外部可訪問(wèn)的服務(wù)器

    如果你運(yùn)行了這個(gè)服務(wù)器,你會(huì)發(fā)現(xiàn)它只能從你自己的計(jì)算機(jī)上訪問(wèn),網(wǎng)絡(luò) 中其它任何的地方都不能訪問(wèn)。在調(diào)試模式下,用戶可以在你的計(jì)算機(jī)上執(zhí) 行任意 Python 代碼。因此,這個(gè)行為是默認(rèn)的。

    如果你禁用了 debug 或信任你所在網(wǎng)絡(luò)的用戶,你可以簡(jiǎn)單修改調(diào)用 run() 的方法使你的服務(wù)器公開(kāi)可用,如下:

    app.run(host='0.0.0.0')
    

    這會(huì)讓操作系統(tǒng)監(jiān)聽(tīng)所有公網(wǎng) IP。


    以上內(nèi)容是否對(duì)您有幫助:
    在線筆記
    App下載
    App下載

    掃描二維碼

    下載編程獅App

    公眾號(hào)
    微信公眾號(hào)

    編程獅公眾號(hào)