python http服務(wù)flask架構(gòu)實(shí)用代碼詳解分析
依賴庫(kù)
flask安裝,使用豆瓣源加速。
pip install flask -i https://pypi.douban.com/simple
gevent安裝,使用豆瓣源加速。
pip install gevent -i https://pypi.douban.com/simple
代碼
#!/user/bin/env python # coding=utf-8 """ @project : TestDemo @author : huyi @file : app.py @ide : PyCharm @time : 2021-10-15 11:58:44 """ from flask import Flask, request from gevent.pywsgi import WSGIServer from gevent import monkey import json # 將python標(biāo)準(zhǔn)的io方法,都替換成gevent中的同名方法,遇到io阻塞gevent自動(dòng)進(jìn)行協(xié)程切換 monkey.patch_all() app = Flask(__name__) # 請(qǐng)求返回實(shí)體 class TestResponse: def __init__( self, code, success, msg, data): self.code = code self.success = success self.msg = msg self.data = data @app.route('/progress', methods=['POST']) def progress(): request_data = json.loads(request.data) print("進(jìn)度回調(diào):{}".format(request_data)) return json.dumps( TestResponse(0, True, "progress callback success", None), default=lambda obj: obj.__dict__, sort_keys=True, indent=4) @app.route('/result', methods=['POST']) def result(): request_data = json.loads(request.data) print("結(jié)果回調(diào):{}".format(request_data)) return json.dumps( TestResponse(0, True, "result callback success", None), default=lambda obj: obj.__dict__, sort_keys=True, indent=4) if __name__ == '__main__': print("遇事不決,可問(wèn)春風(fēng)。") WSGIServer(('0.0.0.0', 8383), app).serve_forever()
使用postman驗(yàn)證結(jié)果
總結(jié)
該代碼架構(gòu)簡(jiǎn)單有效,不用加過(guò)多繁重的東西。如果需要異步非阻塞接口調(diào)用的話,可以加個(gè)線程池,把執(zhí)行內(nèi)容扔個(gè)線程出去,一樣適用。
如果本文對(duì)你有幫助,請(qǐng)點(diǎn)個(gè)贊支持一下吧。
到此這篇關(guān)于python http服務(wù)flask架構(gòu)實(shí)用代碼詳解分析的文章就介紹到這了,更多相關(guān)python http服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django JSONField的自動(dòng)轉(zhuǎn)換思路詳解(django自定義模型字段)
如果想實(shí)現(xiàn)JSONField的自動(dòng)轉(zhuǎn)換,可以使用Django REST framework的JSONField,或者自定義一個(gè)字段類并覆蓋from_db_value()和get_prep_value()方法來(lái)實(shí)現(xiàn)這個(gè)功能,這篇文章主要介紹了Django JSONField的自動(dòng)轉(zhuǎn)換(django自定義模型字段)問(wèn)題,需要的朋友可以參考下2023-06-06Python跨文件調(diào)用函數(shù)以及在一個(gè)文件中執(zhí)行另一個(gè)文件
這篇文章主要給大家介紹了關(guān)于Python跨文件調(diào)用函數(shù)以及在一個(gè)文件中執(zhí)行另一個(gè)文件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-12-12Python中最快的循環(huán)姿勢(shì)實(shí)例詳解
python給我們提供了多個(gè)循環(huán)方法,比如while循環(huán)、for循環(huán)等,下面這篇文章主要給大家介紹了關(guān)于Python中最快的循環(huán)姿勢(shì),需要的朋友可以參考下2021-11-11Python查找不限層級(jí)Json數(shù)據(jù)中某個(gè)key或者value的路徑方式
今天小編就為大家分享一篇Python查找不限層級(jí)Json數(shù)據(jù)中某個(gè)key或者value的路徑方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02JAVA及PYTHON質(zhì)數(shù)計(jì)算代碼對(duì)比解析
這篇文章主要介紹了JAVA及PYTHON質(zhì)數(shù)計(jì)算代碼對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Python爬蟲(chóng)實(shí)戰(zhàn)之虎牙視頻爬取附源碼
讀萬(wàn)卷書(shū)不如行萬(wàn)里路,學(xué)的扎不扎實(shí)要通過(guò)實(shí)戰(zhàn)才能看出來(lái),本篇文章手把手帶你爬取虎牙短視頻數(shù)據(jù),大家可以在實(shí)戰(zhàn)過(guò)程中查缺補(bǔ)漏,加深學(xué)習(xí)2021-10-10基于Pygame實(shí)現(xiàn)簡(jiǎn)單的貪吃蛇游戲
Pygame是一個(gè)專門(mén)用來(lái)開(kāi)發(fā)游戲的Python模塊,主要用于開(kāi)發(fā)、設(shè)計(jì)?2D?電子游戲。本文主要為大家介紹了通過(guò)Pygame制作一個(gè)簡(jiǎn)單的貪吃蛇游戲,感興趣的同學(xué)可以關(guān)注一下2021-12-12