python http服務flask架構實用代碼詳解分析

依賴庫

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標準的io方法,都替換成gevent中的同名方法,遇到io阻塞gevent自動進行協程切換
monkey.patch_all()
 
app = Flask(__name__)
 
 
# 請求返回實體
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("進度回調:{}".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("結果回調:{}".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("遇事不決,可問春風。")
    WSGIServer(('0.0.0.0', 8383), app).serve_forever()

使用postman驗證結果

總結

該代碼架構簡單有效,不用加過多繁重的東西。如果需要異步非阻塞接口調用的話,可以加個線程池,把執行內容扔個線程出去,一樣適用。

如果本文對你有幫助,請點個贊支持一下吧。

到此這篇關於python http服務flask架構實用代碼詳解分析的文章就介紹到這瞭,更多相關python http服務內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: