????在Flask從基礎(chǔ)到實(shí)戰(zhàn)(一)中已經(jīng)實(shí)現(xiàn)了第一個(gè)falsk程序hello world程序成功訪問(wèn)盯孙,這次在說(shuō)一下其他的基礎(chǔ)知識(shí)。
? ? 程序加載配置
? ? 當(dāng)flask運(yùn)行的時(shí)候沛贪,可以給 Flask 設(shè)置相關(guān)配置灯变,比如:配置 Debug 模式敬肚,配置數(shù)據(jù)庫(kù)連接地址等等革娄,這里以Debug模式為例
????從配置對(duì)象中加載(常用)
????從配置文件中加載
配置文件的讀取使用app.config.get()
app.run()的參數(shù)
可以指定運(yùn)行的主機(jī)IP地址倾贰,端口,是否開(kāi)啟調(diào)試模式
app.run(host="0.0.0.0", port=5000, debug = True)
路由的基本定義
通過(guò)瀏覽器訪問(wèn)稠腊,可以看到視圖函數(shù)的返回值
路由的傳參
路由傳遞的參數(shù)默認(rèn)當(dāng)做 string 處理躁染,也可以指定參數(shù)的類(lèi)型,指定參數(shù)類(lèi)型的地方后面會(huì)說(shuō)到架忌,這里先看一下如何傳遞參數(shù),尖括號(hào)中的內(nèi)容是動(dòng)態(tài)的我衬。
請(qǐng)求結(jié)果如下
指定請(qǐng)求方式
? ??在 Flask 中叹放,定義一個(gè)路由,默認(rèn)的請(qǐng)求方式為:
????GET
????OPTIONS(自帶)
????HEAD(自帶)
如果想添加請(qǐng)求方試挠羔,那么可以如下指定:
通過(guò)打印app.url_map可以發(fā)現(xiàn)
視圖的常用邏輯
? ? 返回json
????????第一種方式:
? ? 請(qǐng)求后結(jié)果:
????????第二種方式:
? ? 請(qǐng)求結(jié)果:
? ? 可能你覺(jué)的兩種請(qǐng)求的方式?jīng)]什么區(qū)別井仰,都是返回的json串,但是其實(shí)是有區(qū)別的破加,咱們看一下兩種請(qǐng)求方式的響應(yīng)頭
? ? ? ? 第一種返回json數(shù)據(jù)格式的響應(yīng)頭俱恶,如下
????????接下來(lái)是第二種返回json數(shù)據(jù)的響應(yīng)頭,如下:
????????可以看得出來(lái)第二種的響應(yīng)頭返回的內(nèi)容類(lèi)型改變了
????重定向:url_for
? ??????重定向到自己寫(xiě)的視圖函數(shù)
????????可以直接填寫(xiě)自己 url 路徑
????????也可以使用 url_for 生成指定視圖函數(shù)所對(duì)應(yīng)的 url
? ? 自定義狀態(tài)碼
????????在 Flask 中,可以很方便的返回自定義狀態(tài)碼合是,以實(shí)現(xiàn)不符合 http 協(xié)議的狀態(tài)碼
如下視圖函數(shù)的第二個(gè)返回值就是狀態(tài)碼666: