python+flask編寫接口實例詳解
環(huán)境:Pycharm ;其他環(huán)境:安裝Anaconda
最近在做一個小型項目練手,涉及到大量的IP和相關(guān)數(shù)據(jù)處理,所以選用了Python來處理數(shù)據(jù),但是處理完怎么給前端調(diào)用呢,今天這篇就是在Python方便地處理完數(shù)據(jù)后以接口形式把數(shù)據(jù)返回給前端。
flask就是使用Python編寫接口實例的關(guān)鍵庫,先配置項目:
①(這一步可以使用Python默認(rèn)解釋器,但是后續(xù)安裝庫可能還需要配置,建議使用Anaconda)首先打開PyCharm,在file->settings->Project->project interpreter改為使用Anaconda的python.exe,這里的python.exe在安裝Anaconda文件夾下。

②如果根據(jù)上面配置了Anaconda的解釋器,那么此時flask默認(rèn)已經(jīng)包含在了項目庫中,如果需要安裝,可以先參考Windows下pip和換源
然后在項目中右鍵open interminal便可以使用pip安裝需要的庫了,如下

postman
postman是最常用的接口測試工具,可以下載客戶端也可以使用網(wǎng)頁版,自行下載哦
json數(shù)據(jù)格式
首先我們知道,一般前端請求數(shù)據(jù)的格式都為json格式,通俗來看就是鍵值對形式,如下:
{
"id":"001",
"name":"kong"
}
前端只需要拿到鍵(如id),就能拿到鍵所對應(yīng)的值(001),這樣就可以拿到數(shù)據(jù),那怎么把數(shù)據(jù)處理成json形式就屬于編寫接口要做的事了。
我們只知道python梳理數(shù)據(jù)方便,但是怎么把數(shù)據(jù)處理成上面的json形式呢,
先看完整測試代碼:
from flask import Flask, jsonify
from flask_cors import CORS
# 跨域
app = Flask(__name__)
cors = CORS(app, supports_credentials=True)
@app.route("/", methods=["GET"])
def hello():
return "Hello World"
@app.route("/one", methods=["GET"])
def test():
id_1 = "001"
id_2 = "002"
name_1 = "kong"
name_2 = "chen"
data = {"id1":id_1, "id2":id_2, "name1":name_1,"name2":name_2}
return jsonify(data)
if __name__ == '__main__':
app.run(host='0.0.0.0', threaded=True)
這段代碼中,前兩行是導(dǎo)入需要用到的庫,如果報紅,那就是沒有安裝,使用pip安裝即可,跨域下兩行這樣寫上是為了防止前端報出跨域問題錯誤(我也不太清楚,前端一點不會,實際項目中用到的)。
下面就開始接口的編寫:
@app.route()是設(shè)置路由地址,一般操作系統(tǒng)會給其分配一個端口,前端調(diào)用時就會尋址到這個端口,從其中某一個接口取出所需要的數(shù)據(jù),括號里是請求方式,一般是POST和GET這兩種,這里就是用最簡單的GET形式。
第一個接口就是直接在端口首頁返回一個"Hello World",我們重點說的是第二個,我們看到定義了四個字符串,并最終合成了一個data字典(Python字典也是鍵值對形式),我這里故意在名字上面做了一些差異,其中id_1就是接口處理的變量,也就是說它存儲的是要返回給前端的值,但是前端要拿到這個值,是通過""中的id1實現(xiàn)的,也就是說前端請求這個鍵的值,就可以拿到對應(yīng)的id_1的值。
最后兩行是程序的主函數(shù),最后一行代表啟動這個接口文件,一般在本機(jī)測試時使用host = 127.0.0.1或默認(rèn)app.run()即可,threaded = True表示可以并行訪問接口。
我們右鍵運(yùn)行這個py文件,會看到這樣

此時按住CTRL點這個地址既可以打開瀏覽器,可以看到一個不經(jīng)調(diào)用直接返回的頁面,顯示Hello World,我們主要測試下面一個接口:打開postman,將這個地址賦值進(jìn)去,并根據(jù)接口route中的路徑添加,如下:

此時的數(shù)據(jù)形式就是json形式的,可以供前端直接調(diào)用的了,因為我也是摸索著自學(xué),沒有進(jìn)行系統(tǒng)的學(xué)習(xí),所以只能這樣說明,但實際使用中還是挺簡單的,主要得益于python強(qiáng)大的數(shù)據(jù)處理能力,繼續(xù)加油。
到此這篇關(guān)于python+flask編寫接口實例詳解的文章就介紹到這了,更多相關(guān)python lask編寫接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python itchat實現(xiàn)微信好友頭像拼接圖的示例代碼
本篇文章主要介紹了itchat實現(xiàn)微信好友頭像拼接圖的示例代碼,具有一定的參考價值,有興趣的可以了解一下2017-08-08
Pycharm使用Database?Navigator連接mysql數(shù)據(jù)庫全過程
這篇文章主要介紹了Pycharm使用Database?Navigator連接mysql數(shù)據(jù)庫全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
python wav模塊獲取采樣率 采樣點聲道量化位數(shù)(實例代碼)
這篇文章主要介紹了python wav模塊獲取采樣率 采樣點聲道量化位數(shù),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
Python?requests下載文件的幾種常用方法(附代碼)
這篇文章主要介紹了五種下載方式的實現(xiàn)方法,包括基礎(chǔ)下載、大文件分塊下載、帶有斷點續(xù)傳的下載、帶有超時和重試的下載以及完整的下載器實現(xiàn),文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2025-03-03
Python的mysql數(shù)據(jù)庫的更新如何實現(xiàn)
這篇文章主要介紹了Python的mysql數(shù)據(jù)庫的更新如何實現(xiàn)的相關(guān)資料,這里提供實例代碼,幫助大家理解應(yīng)用這部分知識,需要的朋友可以參考下2017-07-07
django做form表單的數(shù)據(jù)驗證過程詳解
這篇文章主要介紹了django做form表單的數(shù)據(jù)驗證過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07
Python實現(xiàn)哲學(xué)家就餐問題實例代碼
這篇文章主要給大家介紹了關(guān)于Python實現(xiàn)哲學(xué)家就餐問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11

