python http服务flask架构实用代码详解分析
短信预约 -IT技能 免费直播动态提醒
依赖库
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服务内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341