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默認解釋器,但是后續(xù)安裝庫可能還需要配置,建議使用Anaconda)首先打開PyCharm,在file->settings->Project->project interpreter改為使用Anaconda的python.exe,這里的python.exe在安裝Anaconda文件夾下。
②如果根據(jù)上面配置了Anaconda的解釋器,那么此時flask默認已經(jīng)包含在了項目庫中,如果需要安裝,可以先參考Windows下pip和換源
然后在項目中右鍵open interminal便可以使用pip安裝需要的庫了,如下
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, jsonifyfrom 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ù),最后一行代表啟動這個接口文件,一般在本機測試時使用host = 127.0.0.1或默認app.run()即可,threaded = True表示可以并行訪問接口。
我們右鍵運行這個py文件,會看到這樣
此時按住CTRL點這個地址既可以打開瀏覽器,可以看到一個不經(jīng)調(diào)用直接返回的頁面,顯示Hello World,我們主要測試下面一個接口:打開postman,將這個地址賦值進去,并根據(jù)接口route中的路徑添加,如下:
此時的數(shù)據(jù)形式就是json形式的,可以供前端直接調(diào)用的了,因為我也是摸索著自學(xué),沒有進行系統(tǒng)的學(xué)習(xí),所以只能這樣說明,但實際使用中還是挺簡單的,主要得益于python強大的數(shù)據(jù)處理能力,繼續(xù)加油。
到此這篇關(guān)于python+flask編寫接口實例詳解的文章就介紹到這了,更多相關(guān)python lask編寫接口內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Python如何讀寫CSV文件2. php測試程序運行速度和頁面執(zhí)行速度的代碼3. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究4. 三個不常見的 HTML5 實用新特性簡介5. 無線標記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁6. ajax請求添加自定義header參數(shù)代碼7. python利用os模塊編寫文件復(fù)制功能——copy()函數(shù)用法8. 解決Python 進程池Pool中一些坑9. Python使用jupyter notebook查看ipynb文件過程解析10. 解決python腳本中error: unrecognized arguments: True錯誤
