Hello World

Hello World 開始

本節(jié)主要內(nèi)容:使用Flask寫一個(gè)顯示 "Hello World!"的web程序,如何配置、調(diào)試Flask。

創(chuàng)建項(xiàng)目

我們手動(dòng)創(chuàng)建文件夾和文件結(jié)構(gòu)如下:

py/

? ├ static/ # static用來存放靜態(tài)資源,例如圖片、js、css文件等

? ├ templates/ # templates存放模板文件

? ├ server.py

我們的網(wǎng)站邏輯基本在server.py文件中,當(dāng)然,也可以給這個(gè)文件起個(gè)其他的名字。

在server.py中加入以下內(nèi)容:

from flask import Flask

app = Flask(__name__)

@app.route('/')

def hello_world():

? ? return 'Hello World!'

if __name__ == '__main__':

? ? app.run()

運(yùn)行server.py:

python3 server.py

* Running on http://127.0.0.1:5000/


打開瀏覽器訪問http://127.0.0.1:5000/



代碼解析

變量app是一個(gè)Flask實(shí)例,通過下面的方式:

@app.route('/')

def hello_world():

? ? return 'Hello World!'

當(dāng)客戶端訪問/時(shí),將響應(yīng)hello_world()函數(shù)返回的內(nèi)容。注意,這不是返回Hello World!這么簡(jiǎn)單,Hello World!只是HTTP響應(yīng)報(bào)文的實(shí)體部分,狀態(tài)碼等信息既可以由Flask自動(dòng)處理,當(dāng)然也可以通過編程來制定。


修改Flask的配置

app = Flask(__name__)

上面的代碼中,python內(nèi)置變量__name__的值是字符串__main__ 。Flask類將這個(gè)參數(shù)作為程序名稱。當(dāng)然這個(gè)是可以自定義的,比如:

app = Flask("myapp")

Flask默認(rèn)使用static目錄存放靜態(tài)資源,templates目錄存放模板,也可以通過設(shè)置參數(shù)更改:

app = Flask("myapp", static_folder="path1", template_folder="path2")

以上我們指定靜態(tài)資源目錄為path1, 模板目錄為 path2。

更多參數(shù)請(qǐng)參考__doc__:

from flask import Flask

print(Flask.__doc__)


調(diào)試模式

上面的server.py中以app.run()方式運(yùn)行,這種方式下,如果服務(wù)器端出現(xiàn)錯(cuò)誤是不會(huì)在客戶端顯示的。但是在開發(fā)環(huán)境中,顯示錯(cuò)誤信息是很有必要的,要顯示錯(cuò)誤信息,應(yīng)該以下面的方式運(yùn)行Flask:

app.run(debug=True)

將debug設(shè)置為True的另一個(gè)好處是,程序啟動(dòng)后,會(huì)自動(dòng)檢測(cè)源碼是否發(fā)生變化,若有變化則自動(dòng)重啟程序。這可以幫我們省下很多時(shí)間。

還可以使用這種途徑開啟調(diào)試模式:

app.debug = True

app.run()


綁定IP和端口

默認(rèn)情況下,F(xiàn)lask綁定IP為127.0.0.1,端口為5000。也可以通過下面的方式自定義:

app.run(host='0.0.0.0', port=8080, debug=True)

0.0.0.0代表電腦所有的IP。以上我們綁定了8080端口, 啟動(dòng)服務(wù)后我們?cè)L問的網(wǎng)址將是: http://127.0.0.1:8080/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過簡(jiǎn)信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容