后臺有些朋友希望我寫一寫 Python 后臺開發(fā)相關(guān)的,那么就來寫幾篇關(guān)于 Flask 的使用吧,把你們比較想知道的一些東東說一下,比如怎么使用 Flask 來創(chuàng)建 API,如何使用好 Flask-RESTful,F(xiàn)lask 怎么對接數(shù)據(jù)庫,如何存儲數(shù)據(jù),數(shù)據(jù)怎么渲染,還有就是寫完了應(yīng)用,怎么發(fā)布給別人使用等。如果時間允許的話,我盡量寫的容易理解點,你盡量多點點在看和轉(zhuǎn)發(fā),怎么樣?第一篇,簡單點,那么就來創(chuàng)建你的 API 吧。我們知道, Flask 是一個輕量級的 web 框架,它提供了實現(xiàn) web 的基礎(chǔ)功能,而我們要做的一些數(shù)據(jù)庫存儲,模板引擎都可以自己擴(kuò)展。Flask 本身依賴了這么幾個庫:click、Werkzeug、Jinja、itsdangerous、MarkupSafe。不過我們不用預(yù)先安裝,因為我們在安裝 Flask 的時候,會自動安裝相關(guān)的依賴庫,像這樣: 首先你可以創(chuàng)建一個 myapp.py,然后導(dǎo)入你剛剛安裝的 Flask: 接著創(chuàng)建一個 Flask 實例,傳入的參數(shù)為你的模塊名稱,如果是像我們現(xiàn)在只有當(dāng)前這個 py 的話,可以傳入 __name__ ,這樣 Flask 等會才能識別模塊啟動。通常我們在瀏覽器訪問某個文件的時候,會使用 “/” 來訪問相應(yīng)的路徑,比如想要訪問 fxxkpython 網(wǎng)站下的某個類目資源,我們會這樣:https://vip./?cat=343在 Flask 中,我們可以直接使用 route 裝飾器: 這樣,我們就可以通過指定的路由,訪問相應(yīng)的資源,可以讓 app 跑起來試試: 這里將這個 web 應(yīng)用的端口定義為 8888, 那么可以這樣訪問它: http://127.0.0.1:8888/fxxk :我們的服務(wù)端除了可以被簡單的 GET 請求頁面外,也可以接收不同的請求,從而返回相應(yīng)的數(shù)據(jù)或操作,比如 POST、DELETE、PUT、HEAD 等等,我們可以在 FLASK 中根據(jù)具體的情況提供相應(yīng)的方法。它主要用來約束 API 的寫法,讓別人使用起來能感到清晰,簡潔,一目了然,使用方便。像這樣: 我們定義的 URI 需要清晰易于理解,例如: https://api./shop/products/list 這樣我們一眼就能明白這是請求商品數(shù)據(jù)列表。 盡量通過 JSON 或者 XML 來傳遞數(shù)據(jù)對象和屬性。 明確的使用 HTTP 方法(例如,get、post、put和delete)。 無狀態(tài),在請求的時候,服務(wù)端不存儲客戶端的上下文狀態(tài)。 Flask 創(chuàng)建 REST API接下來用一個簡單的示例,給你演示一下 Flask 最常用到的 GET和 POST。比如現(xiàn)在我們想要提供按摩會所的 API。這篇先不講數(shù)據(jù)庫相關(guān)的,我們可以用 list 和 dict 來封裝會所的名稱、具體會所下的技師員工號碼和價格的數(shù)據(jù),比如有一家叫做 “超棒休閑會所”,里面有一位技師 808 號,按摩價格 666,就可以這樣表示:那么這個時候,我們要給前端提供獲取所有會所數(shù)據(jù)的 API,返回 json 數(shù)據(jù),我們就可以這樣: 這里我們用到了 jsonify ,它可以將字典轉(zhuǎn)化為 Json, 為了防止中文亂碼,我們可以這樣設(shè)置:這樣就得到了 json 數(shù)據(jù)了。接著我們可以提供給前端一個添加會所數(shù)據(jù)的 API,使用 POST 請求,后端獲取 json 數(shù)據(jù),然后添加到列表中來: 我們可以使用 Flask 的 request,通過 get_json 方法就可以得到前端傳來的 json 數(shù)據(jù),并且轉(zhuǎn)化為字典,這樣我們就可以將傳來的數(shù)據(jù)存儲到列表中。 可以使用 curl 進(jìn)行 POST 請求我們剛剛寫的接口: 請求成功,我們再來獲取所有數(shù)據(jù)看看:掃一掃 學(xué)習(xí) Python 沒煩惱
|