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("遇事不決,可問春風(fēng)。")
WSGIServer(('0.0.0.0', 8383), app).serve_forever()
使用postman驗(yàn)證結(jié)果

總結(jié)
該代碼架構(gòu)簡(jiǎn)單有效,不用加過多繁重的東西。如果需要異步非阻塞接口調(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()方法來實(shí)現(xiàn)這個(gè)功能,這篇文章主要介紹了Django JSONField的自動(dòng)轉(zhuǎn)換(django自定義模型字段)問題,需要的朋友可以參考下2023-06-06
Python跨文件調(diào)用函數(shù)以及在一個(gè)文件中執(zhí)行另一個(gè)文件
這篇文章主要給大家介紹了關(guān)于Python跨文件調(diào)用函數(shù)以及在一個(gè)文件中執(zhí)行另一個(gè)文件的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-12-12
Python中最快的循環(huán)姿勢(shì)實(shí)例詳解
python給我們提供了多個(gè)循環(huán)方法,比如while循環(huán)、for循環(huán)等,下面這篇文章主要給大家介紹了關(guān)于Python中最快的循環(huán)姿勢(shì),需要的朋友可以參考下2021-11-11
Python查找不限層級(jí)Json數(shù)據(jù)中某個(gè)key或者value的路徑方式
今天小編就為大家分享一篇Python查找不限層級(jí)Json數(shù)據(jù)中某個(gè)key或者value的路徑方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02
JAVA及PYTHON質(zhì)數(shù)計(jì)算代碼對(duì)比解析
這篇文章主要介紹了JAVA及PYTHON質(zhì)數(shù)計(jì)算代碼對(duì)比,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Python爬蟲實(shí)戰(zhàn)之虎牙視頻爬取附源碼
讀萬(wàn)卷書不如行萬(wàn)里路,學(xué)的扎不扎實(shí)要通過實(shí)戰(zhàn)才能看出來,本篇文章手把手帶你爬取虎牙短視頻數(shù)據(jù),大家可以在實(shí)戰(zhàn)過程中查缺補(bǔ)漏,加深學(xué)習(xí)2021-10-10
基于Pygame實(shí)現(xiàn)簡(jiǎn)單的貪吃蛇游戲
Pygame是一個(gè)專門用來開發(fā)游戲的Python模塊,主要用于開發(fā)、設(shè)計(jì)?2D?電子游戲。本文主要為大家介紹了通過Pygame制作一個(gè)簡(jiǎn)單的貪吃蛇游戲,感興趣的同學(xué)可以關(guān)注一下2021-12-12

