python?http通信接口開(kāi)發(fā)示例
前言
需求背景來(lái)源于AI算法通信接口編寫(xiě)…采用python flask框架 解決flask不是生產(chǎn)環(huán)境問(wèn)題
一、flask框架
1.1,簡(jiǎn)介
- Flask是一個(gè)使用 Python 編寫(xiě)的輕量級(jí) Web 應(yīng)用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎則使用 Jinja2 。Flask使用 BSD 授權(quán)。Flask也被稱為 “microframework” ,因?yàn)樗褂煤?jiǎn)單的核心,用 extension 增加其他功能。Flask沒(méi)有默認(rèn)使用的數(shù)據(jù)庫(kù)、窗體驗(yàn)證工具。
- Flask是一個(gè)輕量級(jí)的可定制框架,使用Python語(yǔ)言編寫(xiě),較其他同類型框架更為靈活、輕便、安全且容易上手。它可以很好地結(jié)合MVC模式進(jìn)行開(kāi)發(fā),開(kāi)發(fā)人員分工合作,小型團(tuán)隊(duì)在短時(shí)間內(nèi)就可以完成功能豐富的中小型網(wǎng)站或Web服務(wù)的實(shí)現(xiàn)。另外,F(xiàn)lask還有很強(qiáng)的定制性,用戶可以根據(jù)自己的需求來(lái)添加相應(yīng)的功能,在保持核心功能簡(jiǎn)單的同時(shí)實(shí)現(xiàn)功能的豐富與擴(kuò)展,其強(qiáng)大的插件庫(kù)可以讓用戶實(shí)現(xiàn)個(gè)性化的網(wǎng)站定制,開(kāi)發(fā)出功能強(qiáng)大的網(wǎng)站。
- Flask的基本模式為在程序里將一個(gè)視圖函數(shù)分配給一個(gè)URL,每當(dāng)用戶訪問(wèn)這個(gè)URL時(shí),系統(tǒng)就會(huì)執(zhí)行給該URL分配好的視圖函數(shù),獲取函數(shù)的返回值并將其顯示到瀏覽器上,其工作過(guò)程見(jiàn)圖。
1.2,參數(shù)說(shuō)明 get 和 post的區(qū)別
二、使用步驟
1.引入庫(kù)
代碼如下(示例):
from flask import Flask, request, jsonify import json
2.完整代碼實(shí)現(xiàn)
服務(wù)端代碼:
from flask import Flask, request, jsonify import json from gevent import pywsgi # from settings import APP_PORT # 創(chuàng)建一個(gè)服務(wù) app = Flask(__name__) # 創(chuàng)建一個(gè)接口 指定路由和請(qǐng)求方法 定義處理請(qǐng)求的函數(shù) @app.route(rule='/analysis/alarm_push/', methods=['POST']) def everything(): # 1.獲取 JSON 格式的請(qǐng)求體 并解析拿到數(shù)據(jù) # if not request.data: # 檢測(cè)是否有數(shù)據(jù) # return 'fail' request_body = request.get_json() print('request_body:', request_body) print('request.data:', request.data) print(request.headers) return request.data if __name__ == '__main__': # 啟動(dòng)服務(wù) 指定主機(jī)和端口 server = pywsgi.WSGIServer(('127.0.0.1', 8807), app) print('server is running...') server.serve_forever()
客戶端代碼:
最簡(jiǎn)潔的辦法:利用postman工具編輯,然后可以自動(dòng)生成代碼 例如post推送圖片
3.測(cè)試
3.1 請(qǐng)求測(cè)試
pycharm的HTTP請(qǐng)求測(cè)試
http文件內(nèi)容如下
###9.test POST http://127.0.0.1:8807/analysis/alarm_push/ Content-Type: application/json { "data": "data" }
運(yùn)行HTTP文件發(fā)送請(qǐng)求后服務(wù)端可以看到:
請(qǐng)求的響應(yīng):
postman等工具進(jìn)行測(cè)試
總結(jié)
現(xiàn)在人工智能應(yīng)用越來(lái)越廣泛,算法寫(xiě)好了,但要還要應(yīng)用到實(shí)際工程上。這時(shí)候就需要算法和工程的對(duì)接,需要編寫(xiě)接口,實(shí)現(xiàn)啟動(dòng)算法、與平臺(tái)信息交換等工作。本次python接口采用flask框架+postman工具可進(jìn)行快速開(kāi)發(fā)。
到此這篇關(guān)于python http通信接口開(kāi)發(fā)示例的文章就介紹到這了,更多相關(guān)python http通信接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
對(duì)PyTorch torch.stack的實(shí)例講解
今天小編就為大家分享一篇對(duì)PyTorch torch.stack的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07深入理解Python單元測(cè)試unittest的使用示例
本篇文章主要介紹了深入理解Python單元測(cè)試unittest的使用示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11Pycharm+Scrapy安裝并且初始化項(xiàng)目的方法
今天小編就為大家分享一篇Pycharm+Scrapy安裝并且初始化項(xiàng)目的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01Tensorflow 同時(shí)載入多個(gè)模型的實(shí)例講解
今天小編就為大家分享一篇Tensorflow 同時(shí)載入多個(gè)模型的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07python實(shí)現(xiàn)aes加密及pycryptodome庫(kù)使用
AES算法是高級(jí)加密標(biāo)準(zhǔn),它是一種對(duì)稱加密算法,AES只有一個(gè)密鑰,這個(gè)密鑰既用來(lái)加密,也用于解密,這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)aes加密及pycryptodome庫(kù)使用的相關(guān)資料,需要的朋友可以參考下2023-10-10Python3實(shí)現(xiàn)的判斷回文鏈表算法示例
這篇文章主要介紹了Python3實(shí)現(xiàn)的判斷回文鏈表算法,結(jié)合實(shí)例形式分析了Python3針對(duì)鏈表是否為回文鏈表進(jìn)行判斷的相關(guān)算法實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-03-03