欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python http服务flask架构实用代码详解分析

程序员文章站 2022-06-19 13:34:15
依赖库flask安装,使用豆瓣源加速。pip install flask -i https://pypi.douban.com/simplegevent安装,使用豆瓣源加速。pip install g...

依赖库

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服务flask架构实用代码详解分析

到此这篇关于python http服务flask架构实用代码详解分析的文章就介绍到这了,更多相关python http服务内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!