架构:Flask vs FastAPI
架构:Flask vs FastAPI
我一直在尝试使用Flask和FastAPI来了解它们作为服务器的表现。
其中一个我想了解的主要问题是Flask和FastAPI如何处理来自多个客户端的多个请求。
特别是在代码效率存在问题(长时间数据库查询)的情况下。
所以,我尝试编写了一个简单的代码来理解这个问题。
代码很简单,当客户端访问路由时,应用程序会在返回结果之前休眠10秒钟。
代码大致如下:
FastAPI
import uvicorn from fastapi import FastAPI from time import sleep app = FastAPI() @app.get('/') async def root(): print('休眠10秒') sleep(10) print('唤醒') return {'message': '你好'} if __name__ == "__main__": uvicorn.run(app, host="127.0.0.1", port=8000)
Flask
from flask import Flask from flask_restful import Resource, Api from time import sleep app = Flask(__name__) api = Api(app) class Root(Resource): def get(self): print('休眠10秒') sleep(10) print('唤醒') return {'message': '你好'} api.add_resource(Root, '/') if __name__ == "__main__": app.run()
启动应用程序后,我尝试通过两个不同的Chrome客户端同时访问它们。
以下是结果:
FastAPI
Flask
正如您所见,对于FastAPI,代码在处理下一个请求之前先等待10秒钟。而对于Flask,代码在10秒的休眠仍在进行时处理下一个请求。
尽管我做了一些搜索,但对于这个问题实际上没有一个直接的答案。
如果有人对此有任何可以阐明一些问题的评论,请在评论中留言。
非常感谢大家的意见。非常感谢大家花时间。