python http服务flask架构实用代码 | 实用代码架构

简介: python http服务flask架构实用代码 | 实用代码架构
+关注继续查看

概述

本篇文章主要分享一个python的简单http服务flask架构。目前主流的python的服务框架有django、flask,相较于django来说,flask更小巧玲珑。至于并发的问题,使用了gevent协程io进行处理。

依赖库

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验证结果

image.png

总结 

该代码架构简单有效,不用加过多繁重的东西。如果需要异步非阻塞接口调用的话,可以加个线程池,把执行内容扔个线程出去,一样适用。

如果本文对你有帮助,请点个赞支持一下吧。

相关文章
|
1天前
|
安全 编译器 Python
python安装使用Flask框架(Vscode)
python安装使用Flask框架(Vscode)
12 0
|
1天前
|
机器学习/深度学习 编译器 API
python文字转语音(pyttsx3+flask)
本文主要讲解如何用python的pyttsx3库+flask框架,手写一个文字转语音api
26 0
|
1天前
|
关系型数据库 MySQL Docker
利用docker 开发 信息系统,python + mysql + flask + jquery
利用docker 开发 信息系统,python + mysql + flask + jquery
29 2
|
17天前
|
API 数据库 网络架构
Python Flask框架学习教程
概述: 本教程将介绍Python Flask框架的基础知识和使用方法。Flask是一个简单而灵活的Web应用框架,它具有轻量级、易用性和高度可扩展等特点。通过学习本教程,您将能够了解Flask的基本概念、安装方法、语法结构、模板使用以及实际案例,并通过练习题加深对框架的理解和应用。
|
17天前
|
JSON API 数据格式
使用Python构建RESTful API:Flask和FastAPI的对比与实践
在现代Web开发中,构建RESTful API是一项常见任务。Python提供了多个框架来简化这个过程,其中Flask和FastAPI是两个备受欢迎的选择。本文将对比Flask和FastAPI,并通过实际示例展示它们的用法和优势。
|
19天前
|
开发者 Python
Web开发与Python:Django和Flask框架比较
在Python的Web开发领域,Django和Flask是两个备受欢迎的框架,它们都提供了一系列工具和功能来简化Web应用程序的开发。本文将比较Django和Flask框架,帮助你选择适合你项目需求的框架。
|
2月前
|
应用服务中间件 Linux nginx
Python Flask Web框架服务部署
Python Flask Web框架服务部署
35 0
|
2月前
|
Python
python flask 后端报错 ImportError: cannot import name ‘cached_prope‘
问题python flask 后端报错 ImportError: cannot import name ‘cached_prope‘flask程序启动但抛出该错误,是因为werkzeug 版本过高,需要降低版本即可 解决:一般这种情况是需要注意第三方库版本的对应,werkzeug需要0.16.0 版本时 flask的版本应该时1.x.x 的版本,不能是2.x过高的版本。
22 0
|
2月前
|
前端开发 JavaScript 数据库
【100天精通Python】Day49:Python Web编程_Web框架,Flask框架从安装到使用
【100天精通Python】Day49:Python Web编程_Web框架,Flask框架从安装到使用
49 0
|
3月前
|
机器人 UED Python
基于Python+Flask实现一个简易网页验证码登录系统案例
基于Python+Flask实现一个简易网页验证码登录系统案例
49 0
基于Python+Flask实现一个简易网页验证码登录系统案例
相关产品
云迁移中心
推荐文章
更多