FastApi项目实战 - 爱投票管理系统
一、闲来无事,在工作之余自己研究了一下python的异步框架 - fastapi,并写包括
1、部门管理
2、角色管理
3、用户管理
4、菜单管理
5、登录日志
6、操作日志
7、添加反爬机制
七个基础功能模块
由于我的电脑问题,下载的vue依赖包有几个发生了版本冲突,打包部署后偶尔会在点击菜单按钮时发生前端延时(这时表现为缓慢冲击进度条)。
如果此前已经 F12 的话会发现根本没有发请求,所以出现该情况的话直接 ctrl + F5 就可以了
二、fastapi介绍
1、fastapi官网:https://fastapi.tiangolo.com, 中文官网:https://fastapi.tiangolo.com/zh/
2、性能方面:号称可与 NodeJS 和、Go 比肩,是python最快的web框架之一
3、入门门槛低,简单方便
4、天生为前后端分离的项目打造
5、自动生成 Swagger接口文档,不用额外的再去为前端书写接口文档
......
三、项目介绍:
ps:fastapi在使用上的语法、注意事项在本项目系列文章中不会多加说明,有需要的小伙伴们可以自己到官网去查询
本项目使用包括:
1、python3.7.8
2、mysql8.0 + sqlalchemy
3、redis4.0.6
4、fastapi
5、celery
6、pycharm + Navicat
7、uvicorn(Windows) 、 uvicorn + gunicorn (Linux)
四、简单压测:
部署到云服务器后,使用postman进行了简单的压测
1、云服务器信息:
2、启动的woker数:
使用 gunicorn 启动了4个worker
3、压测工具:
postman
4、测试接口(此时已将反爬机制关闭了):
获取部门列表接口: https://127.0.0.1:8000/api/system/dept/get-dept-list
5、共进行3次测试,测试频率(迭代次数)分别为:
iterations:500
iterations:1000
iterations:10000
6、延迟时间:
delay:0ms
7、测试结果:
postman的Run Result中 FAILCE为0,返回结果全为200
在进行压测的同时用浏览器访问系统,访问正常
8、目前测试的最值是10000,但是10000却不是其峰值,所以有兴趣的小伙伴可以自己部署后测出峰值后在评论区发表一下
五、项目基础代码下载地址:
后端下载地址:https://download.csdn.net/download/hgy717/13060031
前端下载地址:https://download.csdn.net/download/hgy717/13133325